unity 扩展编辑器一(修改编辑器名称)

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

public class Test : MonoBehaviour {

	[HideInInspector][SerializeField] Rect pRectValue;

	public Rect mRectValue
	{
		get
		{
			return pRectValue;
		}
		set
		{
			pRectValue = value;
		}
	}

	[HideInInspector][SerializeField] Texture pTexture;
	public Texture texture
	{
		get
		{
			return pTexture;
		}
		set
		{
			pTexture = value;
		}
	}
}

[HideInInspector][SerializeField] 隐藏数据在面板,并且序列化。它可以帮我们永久保存数据,如果不加的话数值就会重置。就好比我先添加了一个贴图,一运行游戏刚刚添加的贴图就变成null了。


新建一个Editor文件夹,将MyEditor放到这个文件夹中,不需要挂在到gameobject上。

using UnityEditor;
using UnityEngine;
 
//自定义Tset脚本
[CustomEditor(typeof(Test))] 
//在编辑模式下执行脚本,这里用处不大可以删除。
[ExecuteInEditMode]
//请继承Editor
public class MyEditor : Editor 
{
	//在这里方法中就可以绘制面板。
    public override void OnInspectorGUI() 
	{
		//得到Test对象
        Test test = (Test) target;
		//绘制一个窗口
		test.mRectValue = EditorGUILayout.RectField("窗口坐标",
				test.mRectValue);
		//绘制一个贴图槽
		test.texture =  EditorGUILayout.ObjectField("增加一个贴图",test.texture,typeof(Texture),true) as Texture;
 
	}
}

前后对比

posted @ 2017-06-17 08:50  yufenghou  阅读(1513)  评论(0编辑  收藏  举报