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停止就恢復原狀。
在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
}
}
EditorWindow配合 [MenuItem("Window/Example")]就可以創件自己的工具窗口。
留言
張貼留言