我正在尝试使用场景中另一个GameObject中的图像更改附加到GameObject的SpriteRenderer组件的图像。可以轻松,简单地访问其他对象的SpriteRenderer组件并替换图像。
tile.GetComponentInChildren<SpriteRenderer>().sprite = GameObjectA.GetComponentInChildren<SpriteRenderer>().sprite;
但是因为我正在使用多个图像,我想知道是否有一种方法可以从项目文件夹访问此图像,即“Unity项目”,而不是创建独立的GameObjects,因此附加SpriteRenderer,因此引用独立的精灵/图像。
tile.GetComponentInChildren<SpriteRenderer>().sprite = ???
答案 0 :(得分:2)
基本上,您想要做的是,有一些方法可以从MonoBehaviour引用资产。在Unity中有一个非常简单的方法:创建该类型的公共字段(字段,而不是属性)(在本例中为Sprite
),然后单击带有此MonoBehavi的gameObject,而且你会看到这个领域。您可以使用单个实体,数组或列表执行此操作,代码如下所示:
public SomeBehaviour : MonoBehaviour {
public Sprite SomeSprite;
public Sprite[] SomeSpriteArray;
}
然后,您可以将资产分配给它,方法是将其拖动到该字段,或者打开右侧带圆圈按钮的对话框。