【每日一题】资源加载失败中使用到Resources

【每日一题】资源加载失败中使用到Resources

目录

1.对象未激活

①对象在运行前没有被激活unity 实例化预制物体,所以在运行过程中找不到对象;

②对象在运行时被脚本控件停用,所以使用时找不到对象。

2. 对象的父、祖父...未激活

unity对预制体的克隆赋值_unity 实例化预制物体_unity子物体和父物体

在Unity中硬件设备,如果一个对象的父对象没有被激活,那么它的所有子对象都找不到。

同样,这种情况也会导致在运行时找不到对象。

尤其是在使用 GameObject.Find() 函数全局查找 GameObject 时。

unity子物体和父物体_unity 实例化预制物体_unity对预制体的克隆赋值

3.没有挂载脚本

从 MonoBehaviour 继承的脚本不会附加到层次结构面板上的任何游戏对象。

这样的话,脚本中的Awake()、Start()、Update()脚本就不会被执行unity 实例化预制物体创作人,自然也就找不到需要的对象了。

unity 实例化预制物体_unity子物体和父物体_unity对预制体的克隆赋值

4.溯源

对于不继承自MonoBehaviour的脚本,需要检查调用该脚本的源脚本是否正在运行(即挂载到Hierarchy面板上的某个对象,并激活其脚本组件)

5.资源加载失败

unity 实例化预制物体_unity子物体和父物体_unity对预制体的克隆赋值

脚本中使用了Resources.Load()函数,但是它指向的路径中没有对应的东西。

查看Assets文件夹下的Resources文件夹中是否有对应加载的资源。

6. 变量没有赋初值

unity 实例化预制物体_unity对预制体的克隆赋值_unity子物体和父物体

变量只定义了,没有赋值。

public Vector3 vec = new Vector3(0,0,0);
public string[] strs = new string[5];
int index = 0;
float ff = 0.0f;