问题描述
在Unity中使用静态子画面数组的最佳方法是什么?
解决方法
您不应使用静态对象来存储任何资产。这是一种不好的做法,因为您无法控制静态对象的生存期。
在Unity中,您应该使用ScriptableObject并对其进行访问(如果要进行静态访问,则可以使用Singleton Pattern)
[CreateAssetMenu(fileName = "SpriteArrays",menuName = "ScriptableObjects/SpriteArrays",order = 1)]
class SpriteArrays : ScriptableObject
{
public Sprite[] Sprites;
}
现在,您可以访问所有需要使用相同子画面的类的单个参考点,可以从检查器中对其进行编辑(使用菜单“资产/创建/脚本对象/子画面数组”创建此资产)。 / p>
您可以将此实例用作Prefab或任何其他资产,并且可以从脚本中引用它。
public SpriteArrays Sprites;
public void Start()
{
// Use sprites that you attached via Inspector to Sprites field
}
有关更多信息,您还应该参阅AssetBundles和Addressables