【发布时间】:2018-12-01 18:23:02
【问题描述】:
我正在研究一种玩家可以自定义他们的精灵的方法。我在我的管理器脚本中创建了一个数组,如下所示:
public Sprite[] spriteImages = new Sprite[5];
在这个数组中,我打算添加 5 个 png 文件,用于更新 spriteRenderer 精灵。我有两个问题,我正在努力访问精灵脚本中的数组(我认为这是更改图像的最佳方法)。我也在努力实际解决如何更改精灵图像。目前我正在使用此代码:
this.gameObject.GetComponent<SpriteRenderer> ().sprite = GameObject.Find ("UIManager").GetComponent<UIManager> ().spriteImages [0];
在我的精灵列表中,我放置了 5 个 png 文件(2D 精灵纹理),但是当我运行程序时,它显示“对象引用未设置为对象的实例”。不知道为什么当数组中有精灵时它会给出这个错误?
我指的是“UIManager”的游戏对象与我使用查找对象的场景不同。这是无效的吗?
【问题讨论】:
-
静态的“编辑器”为什么不能添加图片?您能否显示更多代码或解释更多问题所在。您看到的错误向您展示了如何解决问题 - 您需要一个类的实例而不是静态引用,因为数组不是静态的。
-
对不起,对这一切都很陌生,类的实例是什么意思?
-
你需要有一个
UIManager对象。在您的代码中类似于var uiMgr = new UIManager(...);。这将创建一个类的实例。如果您不熟悉这些类型的术语,我强烈建议您阅读有关 object oriented programming 的书籍或一些教程