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