unity3d - 在 Unity 中使用静态 Sprite 数组
问题描述
在 Unity 中使用静态精灵数组的最佳方法是什么?
解决方案
您不应该使用静态对象来存储任何资产。这是不好的做法,因为您无法控制静态对象的生命周期。
在 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
}
如需进一步阅读,您还应该查看AssetBundles和Addressables
推荐阅读
- angular - 更新到 Angular 7 - @angular/animation 出错
- installation - Netlogo:如何删除“go”结果保留“setup”结果?
- metal - 'nextDrawable' 非常难以捉摸的金属问题
- google-app-engine - 将 Google Cloud Memorystore 与 App Engine 服务连接起来
- wordpress - 从 wordpress 页面模板中的列表中删除喜欢不起作用
- python - Python - 基于另一个数组中相应最大值的非唯一值数组
- python - 棉花糖领域依赖
- wpf - 如何将项目添加到带有列的 ListViewBox?
- pandas - 熊猫中的数据框,如何堆叠列?
- go - 如何在 Golang 中计算 256 位整数的 log16