从项目文件夹而不是层次结构(场景)访问图像/精灵

时间:2015-04-19 08:24:35

标签: c# unity3d

我正在尝试使用场景中另一个GameObject中的图像更改附加到GameObject的SpriteRenderer组件的图像。可以轻松,简单地访问其他对象的SpriteRenderer组件并替换图像。

tile.GetComponentInChildren<SpriteRenderer>().sprite = GameObjectA.GetComponentInChildren<SpriteRenderer>().sprite;

但是因为我正在使用多个图像,我想知道是否有一种方法可以从项目文件夹访问此图像,即“Unity项目”,而不是创建独立的GameObjects,因此附加SpriteRenderer,因此引用独立的精灵/图像。

tile.GetComponentInChildren<SpriteRenderer>().sprite = ???

1 个答案:

答案 0 :(得分:2)

基本上,您想要做的是,有一些方法可以从MonoBehaviour引用资产。在Unity中有一个非常简单的方法:创建该类型的公共字段(字段,而不是属性)(在本例中为Sprite),然后单击带有此MonoBehavi的gameObject,而且你会看到这个领域。您可以使用单个实体,数组或列表执行此操作,代码如下所示:

public SomeBehaviour : MonoBehaviour {

    public Sprite SomeSprite;
    public Sprite[] SomeSpriteArray;

}

然后,您可以将资产分配给它,方法是将其拖动到该字段,或者打开右侧带圆圈按钮的对话框。