编辑器扩展:在Inspector窗口添加按钮
有时候会希望脚本能在编辑模式方便使用,比如添加一个按钮,可以有一下几种方式
右键脚本:Unity特性
插件:odin-编辑器扩展插件
编辑器扩展:重写OnInspector
第一种:右键执行
给方法上添加 [ContextMenu("名字")] 标记,添加完成后,在Inspector面板的该脚本组件下,右键弹出菜单,可在编辑器环境调用该方法
[ContextMenu("修改文字", false)] public void TestFunc() { }

第二种:插件按钮点击
使用插件就非常方便,引入命名空间后,直接在方法上边加个button标签就可以了
odin插件(Odin Inspector and Serializer)
Unity商城:https://assetstore.unity.com/packages/tools/utilities/odin-inspector-and-serializer-89041
1 [Button] 2 public void TestFun() 3 { 4 5 }
而且有非常多的扩展功能,推荐尝试一下

第三种:
通过Editor扩展Inspector面板,在Editor文件夹下创建脚本,输入以下代码就可以扩展代码方法了。
有一些小需求,不想使用插件可以用这种方法。
同时功能是非常强大,完全可以按照自己的想法去做扩展。
1 //扩展ToggleTest类在Inspector面板的显示内容 2 [CustomEditor(typeof(ToggleTest))] 3 public class InspectorEditor : Editor 4 { 5 //重写OnInspectorGUI类(刷新Inspector面板) 6 public override void OnInspectorGUI() 7 { 8 //继承基类方法 9 base.OnInspectorGUI(); 10 11 //获取要执行方法的类 12 ToggleTest tog = (ToggleTest)target; 13 //绘制Button 14 if (GUILayout.Button("修改文字")) 15 { 16 //执行方法 17 tog.TestFunc(); 18 } 19 } 20 }
挂载的脚本
1 public class ToggleTest : MonoBehaviour 2 { 3 public void TestFunc() 4 { 5 6 } 7 }
扩展:unity在inspector面板显示自定义类数组
将自定义类序列化,就可以在列表中显示了,更多内容可以自行搜索:“ 重写OnInspector ”
1 [Serializable] 2 public class PosInfo{ 3 public Vector3 targetPos, targetRotate; 4 } 5 public class Test : MonoBehaviour 6 { 7 public List<PosInfo> targetPos; 8 }


浙公网安备 33010602011771号