1. 程式人生 > >Unity自定義Inspector屬性面板

Unity自定義Inspector屬性面板

有時候,為了改善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