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;
}
}
前后对比