个人学习笔记,如有错误、疑问、指导,欢迎留言。 声明:本文不得以任何形式进行转载
?在Unity中,我们可以自定义脚本用于我们的游戏逻辑,那么Unity的原生组件我们也可以自定义吗?答案当然是可以的,下面附上代码:(以Light 组件为示例) ?在Editor 文件夹中,新建脚本,添加以下代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(Light))]
public class LightPlugin : Editor
{
public override void OnInspectorGUI()
{
if(GUILayout.Button("Plugin Button"))
{
Debug.Log("Click!");
}
base.OnInspectorGUI();
}
}
注意事项: ?1、此脚本引用命名空间UnityEditor ?2、这个类继承自Editor ?3、[CustomEditor()] 表示自定义哪一个组件,当为组件创建自定义编辑器时,需要将此属性添加到编辑器类上。 ?4、重写OnInspectorGUI 方法实现重新绘制(这个方法必须通过重写 的方式才能正常工作) ?5、base.OnInspectorGUI() 表示是否绘制组件原来的UI元素
|