在Unity中使用静态Sprite数组

问题描述

在Unity中使用静态子画面数组的最佳方法是什么?

解决方法

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

在Unity中,您应该使用ScriptableObject并对其进行访问(如果要进行静态访问,则可以使用Singleton Pattern

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

现在,您可以访问所有需要使用相同子画面的类的单个参考点,可以从检查器中对其进行编辑(使用菜单“资产/创建/脚本对象/子画面数组”创建此资产)。 / p>

ScriptableObject

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

public SpriteArrays Sprites;

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

有关更多信息,您还应该参阅AssetBundlesAddressables