Unity裡Inspector常見的Attributes功能


粗體標題
[Header("Detil")] 可以讓Inspector上出現粗體說明


多行輸入框
[Multiline]  可以讓輸入框由一行變成一大格,不過她不會自己換行,要自己分隔。(如EnemyDesc區域)

字串輸入框
[TextArea] 讓輸入框變成文字類輸入框,會自己換行。(如EnemyDesc2區域)

空白分隔
[Space] 可以讓Inspector的參數多一行空白作分隔(HP上方)
PS : [Header] 也有類似的空一行效果,不過一個有說明一個沒說明


範圍拖曳霸
[Range(0,100)]
會出現SliderBar讓你可以在範圍內拖。

功能提示
[Tooltip("設定敵方速度")]
當游標移到參數上時會出現提示。



功能說明連結外部網站
[HelpURL("https://mythzsgame.blogspot.com/")]
public class AttributesTest : MonoBehaviour
加在Class上方,這樣點擊該Class腳本的小書本就回連到該頁面。

需要特定元件
[RequireComponent(typeof(BoxCollider))]
public class AttributesTest : MonoBehaviour
一樣加在Class上方,這樣該Class在缺少關鍵元件時會跳出警告。

禁止重複元件
[DisallowMultipleComponent]
一樣加在Class上方,這樣該Class在同一個物件上就不能放上兩個相同的元件。

Inspector隱藏Public參數
[HideInInspector]     public int CurrentHp;
這樣就可以把Public的參數在Inspector裡隱藏起來。

Inspector 顯示Private參數
[SerializeField] private int myNumber = 20;
這樣就可以把private 的參數在Inspector裡秀出來。

在Editor下就可以執行結果
[ExecuteInEditMode]
public class ExcuteInEditMode : MonoBehaviour
這樣就可以不用Run就直接看結果。不過使用上要小心覆蓋問題。他不會隨Run停止就恢復原狀。


選單功能表
[UnityEditor.MenuItem("Tools/GiveCube")]
 public static void GiveCube(){}
需搭配靜態方法這樣就可以在選單上出現該功能
 





過期方法警告
[System.Obsolete("This is Old, use CreateItem() instate.")]
public void CraeteCube()
多人協作時使用,可以保留原方法不修改舊架構,但是又可以警告其他人別再用舊的方法了


創建ScriptableObject Asset
[CreateAssetMenu(fileName = "New Item", menuName = "Item")]    //可在右鍵選單多一個Creat 項目
public class NewBehaviourScript : ScriptableObject
{
    public string ItemName;
    public int ItemLevel;
    public Texture2D ItemIcon;
}










之後就可以創建設定好的ScriptableObject Asset檔案,可用他來管理常見的遊戲設定或數值等。

自定義窗口
using UnityEngine;
using UnityEditor;

public class CustumWindow : EditorWindow
{
    [MenuItem("Window/Example")]
    public static void ShowWindow()
    {
        GetWindow("Example");
    }
}























EditorWindow配合 [MenuItem("Window/Example")]就可以創件自己的工具窗口。

留言

熱門文章