开坑UnityEditor

首先

开始学习UnityEditor,记录一下
编辑器扩展这部分东西以前还是不太想碰的,感觉东西又多又难,但目前需要来做一些自定义插件,提升效率,走起!
先贴一下官方的UnityEditor API:https://docs.unity3d.com/ScriptReference/UnityEditor.html

动手

咱们先来个最基本的
所有编辑器扩展的东西都要放在叫Editor的文件夹下面
编辑器扩展要对用一个Mono组件,首先定义一个MonoBehavior

using UnityEngine;

public class Test1 : MonoBehaviour
{

    public string name;
    public int id;
    public Vector3 pos;
    public GameObject box;

    private void Start()
    {
        Debug.Log(name);
    }
}

然后对应一个编辑器扩展组件,要引用using UnityEditor,并且继承Editor类

using UnityEngine;
using UnityEditor;

//绑定Test1
[CustomEditor(typeof(Test1))]
public class EditorTest1 : Editor
{
    //声明一个序列化成员box
    SerializedProperty mBox;

    public override void OnInspectorGUI()
    {
        //得到Test1对象
        Test1 mTarget = (Test1)target;

        //给mBox赋值
        mBox = serializedObject.FindProperty("box");

        //绘制参数
        mTarget.name = EditorGUILayout.TextField("Name", mTarget.name);
        //空行
        GUILayout.Space(10);
        mTarget.id = EditorGUILayout.IntField("id",mTarget.id);
        GUILayout.Space(10);
        //标签
        GUILayout.Label("Box");
        //绘制box赋值,GUILayout可以绘制样式
        EditorGUILayout.PropertyField(mBox, new GUIContent("box"), GUILayout.Height(40));
    }
}

posted on   奇个旦Game  阅读(125)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示