【发布时间】:2014-04-21 05:59:33
【问题描述】:
我正在尝试创建一个负责创建和显示不同精灵的对象,因此我想以编程方式直接访问资产/精灵,而不是在该对象下的层次结构中拖放精灵。
有一种方法可以以编程方式创建新精灵并分配资产文件夹中的内容吗?
我还希望有一种数据结构,其中包含在游戏开始时加载的一些图像、数组或字典或类似的东西,这样我就可以根据需要显示的图像进行更改。但是,由于我是 Unity 新手,所以让我感到困惑的是如何使用 assets 文件夹以编程方式创建一个引用精灵的精灵。
编辑进度:
我创建了一个这样的精灵数组:
public Sprite[] mySprites;
在 Unity 中,我手动在数组中添加了精灵(我只是在变量数组中拖动了 png),所以实际上在这个对象中我有一个组件,这个数组中充满了精灵
在组件内部我也这样做了:
public SpriteRenderer renderer;
renderer = transform.GetComponent<SpriteRenderer>();
renderer.sprite = (Sprite)mySprites [0];
在我运行游戏之前我没有收到任何错误,然后精灵没有被分配,我得到了这个:
“解除引用时 PPtr 转换失败!从 Texture2D 转换为 Sprite!”
即使没有强制转换(Sprite)我也遇到了这个错误,顺便说一句,我不知道他为什么告诉我有关 Texture2D 的事情,因为一切都设置为 sprite
【问题讨论】: