Unity3D注册事件和取消注册事件位置

来源:互联网 发布:星际边界mac 编辑:程序博客网 时间:2024/05/16 14:40

最近联调的时候遇到关于注册事件的问题。

第一个物体是同事只注册了事件,并没有取消事件的注册,隐藏挂脚步的物体时程序异常崩溃,检查后在void OnDisable () 函数中添上了。

第二个物体是再次运行中间又出现逻辑错误,经查找是因为事件没有注册成功,检查也写了但是写在了void Awake () 函数里面,物体经过

隐藏处理之后事件就注册不上了,这是肯定了,unity生命周期里void Awake ()只执行一次。所以最好的方案是把注册事件放到

void OnEnable()函数下面,取消注册事件放到void OnDisable () 函数下面,是最好的,也是最严谨的。

例:

void OnEnable()

{

xxx+=yyy;

}

void OnDisable () 

{

xxx-=yyy;

}