同样unity当中也预定义了一些事件类型,比如处理玩家的死亡事件,如果对unity的事件类型比较熟悉,就知道可以定义UnityEvent,在unity的属性面板上面,在PlayerHealth脚本上面可以看到定义的属性叫On Player Death的事件,如果你写的是C#的事件,在属性面板上是看不到的,这就是unity预定义的事件跟C#的区别
并且它还有一个最本质的区别,在面试的时候一定要注意,如果你只说unity定义的事件在属性面板能看到,说明你还没有理解它的本质,为什么在属性面板能看到
因为Unity所有在面板上能看到的属性是可以序列化的,所以On Player Death在UnityEvent最本质的区别是能够序列化,什么叫能够序列化?
就是当你在这儿设置了On Player Death的时间处理函数,比如定义为DisableInput以后,当我把unity关掉,重新启动unity以后,仍然可以看到设置的On Player Death的事件,处理函数还在,就是设置的DisableInput在