我正在尝试将附加到游戏对象的 SpriteRenderer 组件的图像更改为场景中另一个游戏对象中的图像。访问其他对象的 SpriteRenderer 组件并替换图像非常简单。
tile.GetComponentInChildren<SpriteRenderer>().sprite = GameObjectA.GetComponentInChildren<SpriteRenderer>().sprite;
但是由于我正在使用多个图像,我想知道是否有一种方法可以从项目文件夹访问此图像,即"Unity 项目",而不是创建独立的游戏对象,因此附加 SpriteRenderer,因此引用独立的精灵/图像。
tile.GetComponentInChildren<SpriteRenderer>().sprite = ???
基本上,你想要做的是有某种方式从MonoBehavior引用资产。在 Unity 中有一种非常简单的方法:创建一个该类型的公共字段(字段,而不是属性)(在本例中Sprite
),然后单击具有此 MonoBehavior 的游戏对象,您将看到该字段。您可以使用单个实体、数组或列表执行此操作,代码如下所示:
public SomeBehaviour : MonoBehaviour {
public Sprite SomeSprite;
public Sprite[] SomeSpriteArray;
}
然后,您可以通过将其拖动到字段或打开右侧带有圆形按钮的对话框来为其分配资产。