一般来说,从设计初衷来看,把挂在物体上的脚本勾选状态改为不勾选,这个脚本就不会运行。
然而真实情形只是生命周期函数和用户自定义的且外部不被访问的函数不运行罢了;
enabled设置为false,且方法为外部调用的这个是必定会被执行,暂不讨论。
我遇到去掉钩也运行的情况,是调用unity API导致的,难免有些意外,就此说道说道好了!
首先,神奇的代码如下:
using UnityEngine;
public class testForChangeTexture : MonoBehaviour {
AnimEmoj animEmoj;
void Start () {
animEmoj = GetComponent();
}
private void OnMouseDown()
{
animEmoj.Playing(gameObject,0,-1);
}
}
然后取消勾选该脚本,运行居然还会报错:
明明取消了脚本的勾选
居然这个脚本会爆出对象为空警告
来来,我们分析下为何他会报错:显然是animEmoj没有赋值,也就是说Start方法没有运行。
综上,我们先怀疑一下,就是事件监听这类的Unity内置方法,只要挂在游戏对象上,