尝试从资源文件夹加载预制件时获取null

时间:2014-09-16 10:33:43

标签: c# user-interface unity3d

我在Resources文件夹中加载了一个预制件,但是当我试图从代码中获取它时它返回NULL。我怎么能这样做?我只想获得预制件并访问位于预制件中的UI组件,然后从预制件对象中更改UI值。

enter image description here

GameObject alertPrefab = (GameObject)Instantiate(Resources.Load("Prefabs/AlertPrefab"));

2 个答案:

答案 0 :(得分:0)

您还可以创建public类型的[SerializeField]GameObject变量,并将要使用的Prefab拖到script内{ {1}}。

创建公共变量

enter image description here

将预制件从预制文件夹拖到脚本

enter image description here

而不是从脚本中的public var实例化它

Inspector

答案 1 :(得分:-3)

所有资产名称& Unity中的路径使用正斜杠,使用反斜杠的路径不起作用。

" Prefabs / AlertPrefab")你不能这样做

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void Start() {
        GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube);
        go.renderer.material.mainTexture = Resources.Load("glass", typeof(Texture2D));
    }
}