在Unity中创建Editor文件夹,自定义的查看器脚本必须放在Editor文件夹下,然后再创建Scripts文件夹,一般Mono的脚本都会放在这个文件夹下。
在Scripts文件夹下 创建Level脚本,申明一个public变量 totalTime
在Editor文件夹下,创建Level Inspector脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using RunAndJump;
namespace RunAndJump
{
[CustomEditor(typeof(Level))]
public class LevelInspector : Editor
{
private Level _myTarget;
//在我们对象被选中的时候调用的,常常用于一些初始化的代码
private void OnEnable()
{
Debug.Log("OnEnable");
//为哪个对象写查看器 target就是哪个对象
//target的类型 是Object,需要转换类型
_myTarget = (Level)target;
}
//在对象超出我们操作范围内调用的
//在对象被销毁的时候调用的
//可以用来做一些代码退出前的清理工作(数组清零,变量重置)
private void OnDisable()
{
Debug.Log("OnDisable");
}
//在对象被销毁的时候调用的
private void OnDestroy()
{
Debug.Log("OnDestroy");
}
//绘制查看器GUI的回调函数
//必须是public,为了使自定义的查看起生效 必须重载
public override void OnInspectorGUI()
{
//查看器输出文本
EditorGUILayout.LabelField("这个inspector的GUI被修改了");
EditorGUILayout.LabelField("当前关卡时间:"+_myTarget.TotalTime);
}
}
}
可以看到,挂载level脚本的对象的查看器变成了如下样子