unity中Inspector屬性面板的擴展一

添加屬性面板中的“選擇貼圖”和“窗口座標”

1.新建C#腳本ChangeInspector

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ChangeInspector : MonoBehaviour {
    public Texture texture;
    public Rect rectValue;
}

2.新建C#腳本InspectorEditor

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

[CustomEditor(typeof(ChangeInspector))]
public class InspectorEditor : Editor {
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        ChangeInspector inspectorObj = (ChangeInspector)target;
        //繪製貼圖槽
        inspectorObj.texture = EditorGUILayout.ObjectField("選擇貼圖",inspectorObj.texture,typeof(Texture),true)as Texture;
        inspectorObj.rectValue = EditorGUILayout.RectField("窗口座標",inspectorObj.rectValue);
    }
}

結果:

如要想要隱藏面板中的Texture和Rect Value 代碼如下;

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ChangeInspector : MonoBehaviour {
    [HideInInspector]//隱藏窗口
    public Texture texture;
    [HideInInspector]
    public Rect rectValue;
}

隱藏後面板如下:

3.接下來添加一個文本輸入框

ChangeInspector腳本中:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ChangeInspector : MonoBehaviour {
    [HideInInspector]//隱藏窗口
    public Texture texture;
    [HideInInspector]
    public Rect rectValue;
    [HideInInspector]
    public string remark;//備註
}

InspectorEditor腳本中:

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

[CustomEditor(typeof(ChangeInspector))]
public class InspectorEditor : Editor {
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        ChangeInspector inspectorObj = (ChangeInspector)target;
        //繪製貼圖槽
        inspectorObj.texture = EditorGUILayout.ObjectField("選擇貼圖",inspectorObj.texture,typeof(Texture),true)as Texture;
        inspectorObj.rectValue = EditorGUILayout.RectField("窗口座標",inspectorObj.rectValue);
        inspectorObj.remark = EditorGUILayout.TextField("備註", inspectorObj.remark);
    }
}

結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章