首页 > 解决方案 > 在 Unity 中使用静态 Sprite 数组

问题描述

在 Unity 中使用静态精灵数组的最佳方法是什么?

标签: unity3dsprite

解决方案


您不应该使用静态对象来存储任何资产。这是不好的做法,因为您无法控制静态对象的生命周期。

在 Unity 中,您应该使用ScriptableObject并访问它(如果您想要静态访问,您可以使用Singleton Pattern

[CreateAssetMenu(fileName = "SpriteArrays", menuName = "ScriptableObjects/SpriteArrays", order = 1)]
class SpriteArrays : ScriptableObject
{
    public Sprite[] Sprites;
}

现在,您可以访问需要使用相同精灵的所有类的单一参考点,您可以从检查器中编辑这些参考点(使用菜单“Assets/Create/ScriptableObjects/SpriteArrays”创建此资产)。

脚本对象

您可以将此实例用作 Prefab 或任何其他资产,并且可以从脚本中引用它。

public SpriteArrays Sprites;

public void Start()
{
    // Use sprites that you attached via Inspector to Sprites field
}

如需进一步阅读,您还应该查看AssetBundlesAddressables


推荐阅读