编辑器扩展:在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面板显示自定义类数组

1 [Serializable]
2 public class PosInfo{
3   public Vector3 targetPos, targetRotate;
4 }
5 public class Test : MonoBehaviour
6 {
7   public List<PosInfo> targetPos;
8 }

 

 

 

posted @   七修天  阅读(3154)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示