文章目录
1. 继承自MonoBehavior的函数
在Unity3D游戏开发中会使用到很多函数,如果熟练知道每个函数的用法会极大的提高开发效率,但是需要注意的是如果函数名不保持完全一致,函数将不会实现预期功能
2. 常用的函数及起作用
2.1 本地函数
- Awake
当一个脚本实例被载入时Awake被调用。 - Start
Start仅在Update函数第一次被调用前调用。 - Update
当MonoBehaviour启用时,其Update在每一帧被调用。 - LateUpdate
当Behaviour启用时,其LateUpdate在每一帧被调用。 - FixedUpdate
当MonoBehaviour启用时,其 固定时间调用一次
2.2 碰撞检测
- OnTriggerEnter
当Collider(碰撞体)进入trigger(触发器)时调用OnTriggerEnter。 - OnTriggerExit
当Collider(碰撞体)停止触发trigger(触发器)时调用OnTriggerExit。 - OnTriggerStay
当碰撞体接触触发器时,OnTriggerStay将在每一帧被调用。 - OnCollisionEnter
当此collider/rigidbody触发另一个rigidbody/collider时,OnCollisionEnter将被调用。 - OnCollisionExit
当此collider/rigidbody停止触发另一个rigidbody/collider时,OnCollisionExit将被调用。 - OnCollisionStay
当此collider/rigidbody触发另一个rigidbody/collider时,OnCollisionStay将会在每一帧被调用。
3. 错误实例
-
该实例表现为 函数不执行 但是程序不报错
-
OnTriggerEnter()
private void OntriggerEnter(Collider collision) { Debug.Log("ok"); } }
该结果不会被执行 即ok不会被打印出来
-
改正:
private void OnTriggerEnter(Collider collision) { Debug.Log("ok"); }
4. 个别函数详解
4.1 OnTriggerEnter(Collider collider)
- 需要注意的是这个collider,谁进行碰撞(主动),collider代指谁
如图:该脚本挂载在手术刀上,OnTriggerEnter()写在该脚本内,但是当手术刀主动碰撞骨骼时,collider的标签打印的却是ChosenTool