首先要搞明白Unity中C#脚本的六个阶段:
1、初始阶段:比如Awake()唤醒(当物体载入时立即调用一次,常用于游戏开始前进行初始化)和Start()开始(物体载入且脚本启用时被调用一次,常用于数据或游戏逻辑的初始化,执行时机晚于前者);
2、物理阶段:FixedUpdate固定更新,当脚本启用时,固定时间被调用,适用于游戏对象的物理操作例如移动;OnCollisonXXX碰撞,当满足碰撞条件时调用;OnTriggerXXX触发,当满足触发条件时调用;
3、游戏逻辑:Update更新,每帧执行一次;LateUpdate延迟更新,在前者被调用后执行,适用于跟随逻辑;
4、输入事件:OnMouseEnter鼠标移入当前Colider时调用,OnMouseOver鼠标经过当前碰撞器时调用,相同的还有OnMouseExit鼠标离开,OnMouseDown鼠标按下,OnMouseUp鼠标抬起;
5、场景渲染:这里一般用不到;
6、结束阶段:一般也用不到;
理解这六个阶段后就可以知道,一般打开一个C#脚本会默认给出void start()和void Update()这其实就是一般游戏脚本只包含初始阶段和游戏逻辑阶段就够了。但有时需要两个物体相互碰撞或者碰撞后触发一个事件的执行,这时候就要在脚本中加OnCollisonXXX()和OnTriggerXXX()然后在这两个中写上代码。切记不要把他们当方法看待,这两个阶段与start和update同级是不能被调用的,这里新手会有疑问,在这里笔者强调一下。