Unity Editor 自製編輯器(一) - Gizmos

有時候,我們會想要在 Unity 場景中繪製一些符號、圖案或區塊,來標記一些特殊的區域。例如:重生點、死亡區或生怪區等。這些區塊我們只想要在編輯時看到,執行遊戲時是不能讓玩家看到的。這種情形很適合利用 Gizmos 來繪製物件。 

繪製 OnDrawGizmos

所有繪製 Gizmos 的程式碼都必須寫在內建的 Unity 方法 OnDrawGizmos( )OnDrawGizmosSelected( ) 中。並且這裡的物件不會編譯到遊戲當中,所以遊戲裡不會看到此方法內所畫的任何物件。

  • OnDrawGizmos()
    不論有沒有選中這個物件,一定會被畫出來
  • OnDrawGizmosSelected()
    只有被選中這個物件,才會被畫出來

繪製 Gizmos 物件

using UnityEngine;
using UnityEditor;
using System.Collections;
 
public class DrawGizmo : MonoBehaviour
{
    void OnDrawGizmos()
    {
        Gizmos.color = new Color(1f, 1f, 0f, 1f);
        Gizmos.DrawWireCube(this.transform.position, Vector3.one * 0.9f);
 
        Gizmos.color = new Color(1f, 1f, 0f, 0.3f);
        Gizmos.DrawCube(this.transform.position, Vector3.one * 0.9f);
    }
}

將 Script 綁在目標物件上,便可以在 Scene View 中看到結果 

參考資料
    ●    Unite Europe 2016 - Editor Scripting for n00bs
    ●    Unity Gizmos API