Unity Editor扩展编辑器Inspector界面

筅森魡賤 提交于 2019-12-03 14:57:41

    [SerializeFild]//对私有变量进行序列化保存设置的值,使其可以在Inspector界面显示

首先扩展编辑器需要:

using UnityEditor

 

(1)Inspector界面编辑:

 

//被扩展脚本

using UnityEngine;

using System.Collections;

 

public class Test : MonoBehaviour

{

    [SerializeFild]//对私有变量进行序列化保存设置的值,使其可以在Inspector界面显示

[HideInInspector]//在Inspector界面隐藏

Private Sprite spt;

Public Sprite Spt{

get{return spt;}

set{spt = value;}

}

}

 

//Editor脚本,可以放在Editor文件夹中(如果不放在Editor请加属性[ExecuteInEditMode])

Using UnityEditor;

using UnityEngine;

using UnityEngine.UI;

//[ExecuteInEditMode] //在编辑器中运行

//[CanEditMultipleObjects]//可以对多个脚本进行设置,可以做多选操作

[CustomEditor(typeof(Test))]//标明是哪一个脚本类

public class TestEditor:Editor//需要继承Editor类

{

Image = image;

public override void OnInspectorGUI()//重写Inspector的gui显示

{

base.DrawDefaultInspector();//显示原有的

Test test = (Test)target;//获取到展示的对象

test.Spt = EditorGUILayout .ObjectField("Test",test.Spt,typeof(Sptite),true)as Sprite;

image = test:GetComponent<Image>();

if(test.Spt != null&&image !=null)

{

image.sprite = test.Spt

}

}

}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!