Script Lifecycle Flowchart
Start () → OnTrigger () → OnCollision () → Update () → yield WaitForSeconds () → OnDrawGizmos ()
Start
遊戲物件初始化後會立即執行一次。
OnTrigger
勾起Is Trigger的Collider才會觸發。
2D碰撞開關事件處理。
// 假設腳本的主人A被B觸碰
void OnTriggerEnter2D (other : Collider2D) {
Debug.Log(other.name); // other就是B
}
OnCollision
2D碰撞體事件處理。
// 假設腳本的主人A被B撞
void OnCollisionEnter2D (coll : Collision2D) {
Debug.Log(coll.collider.name); // coll.collider就是B
}
Update
每跑過一個影格執行一次,其每次執行的時間間隔不同。
用途:非物理物件的移動、按鍵事件的偵測以及簡易的計時器。
FixedUpdate
每個物理動作執行一次,其每次執行的時間間隔相同。(可至Edit>Project Settings>Time中查看)
用途:調整物件的物理特性,如施力、速度或重力。
Refs: update-and-fixedupdate
OnDrawGizmos
圖形繪製事件。
// 繪製一條線從物件本身到目標物件的position
void OnDrawGizmos() {
Gizmos.color = Color.green;
Gizmos.DrawLine(transform.position, target.transform.position);
}