[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
}
}
}
来源:CSDN
作者:k1_kill
链接:https://blog.csdn.net/qq_38011358/article/details/87934298