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);
}

results matching ""

    No results matching ""