Unity自定義Inspector屬性面板
阿新 • • 發佈:2019-01-03
有時候,為了改善Unity的工作流程,我們會在Unity Editor下對介面進行二次開發或者做一些方便使用的擴充套件工具。今天講的內容就是自定義Inspector屬性面板。
在這裡,我會通過最小單元的程式碼來實現自定義的Inspector。更高階的擴充套件需自行查閱。
實現自定義Inspector的流程
1、 繼承名稱空間UnityEditor下的Editor基類。
2、 新增[CustomEditor(typeof(XXX))]註解,告訴編輯器這個類是擴充套件哪個元件的Inspector。
3、 重寫OnInspectorGUI方法,自定義重繪內容。
初始Inspector顯示
程式碼:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LevelScript : MonoBehaviour {
public int experience;
public int Level {
get { return experience / 750; }
}
}
效果:
自定義Inspector顯示
在Assets下建立Editor資料夾,新增指令碼
程式碼:
using System.Collections; using System.Collections.Generic; using UnityEditor; [CustomEditor(typeof(LevelScript))] public class LevelScriptEditor : Editor { public override void OnInspectorGUI() { LevelScript myTarget = (LevelScript)target; myTarget.experience = EditorGUILayout.IntField("經驗", myTarget.experience); EditorGUILayout.LabelField("等級", myTarget.Level.ToString()); } }
效果:
更多內容的學習可以訪問Paws3D學習中心:https://www.paws3d.com/learn/
Unity技術交流群:935714213