文章目录

  • 制作编辑器工具的意义
  • 使用Odin制作编辑器工具
  • Odin使用
  • 建立工具箱

制作编辑器工具的意义

编辑器工具:unity中,我们经常需要制作各种工具以方便程序,美术,策划等进行开发。
通常的工具有:
针对Excel数据表的,数据和表现分离的开发中,数据的配置一般在Excel,但是Excel的数据不能直接拿来用(读取速度与文件大小),要经过转化成特定的数据文件(Json,ProtoBuf,二进制,自定义的数据文件等),转化后的数据才是我们要使用的数据,这个转化过程就需要使用编辑器工具批量转化,实现自动。
针对美术资源的,对美术资源进行批量处理。
针对程序的,一键打各种包(热更新包,基础包,服务器部署),一键生成地图数据,一键……
总结:编辑器工具的意义在于将开发过程自动化,简洁化,规范化,为团队制作各种在开发过程中需求的功能。

使用Odin制作编辑器工具

根据前面编辑器工具的意义可知,只要做出能够达到开发中需求的功能即是好工具人,那么不论是用Qt,WinForm或者任何图形化,非图形化程序都可以,但是既然是针对Unity资源的工具,那么必然涉及到Unity本身,所以是用unity自带的Editor窗口是最佳解决方案(当资源不涉及unity,或者是用unityEdior无法达到要求,那么就需要使用外部程序编写)

为什么使用Odin?
Unity自带的Editor完全可以实现绝大部分功能,使用Odin的目的是进一步简化编辑器的开发,Odin自带各种实例,拥有大量的特性标签,功能,能够更加方便快捷的实现编辑器功能,因此选择Odin

Odin使用

Odin有很多教程,官方也有大量的文档,国内也有大量基于Odin的博客和文章,我就不详细介绍了,主要还是介绍Odin实现编辑器功能的通用方法。
这里主要推荐一下官方的文档和海澜大佬的Odin系列教程
Odin官网:https://odininspector.com/
Odin文档:https://odininspector.com/documentation
海澜博客:https://aihailan.com/category/odin/

建立工具箱

继承OdinMenuEditorWindow类实现OdinMenuTree即可实现工具箱,后续所有的工具建议都放在工具箱里,这样更加整洁,不至于编辑器上方全是各种Editor窗口
MenuItem标签后面添加工具箱打开路径

public class MyOdin : OdinMenuEditorWindow{[MenuItem("Tools/我的工具箱")]private static void OpenWindow(){var window = GetWindow<MyOdin>();window.position = GUIHelper.GetEditorWindowRect().AlignCenter(1000, 500);}protected override OdinMenuTree BuildMenuTree(){OdinMenuTree tree = new OdinMenuTree();tree.Add("一键打包工具", OneKeyBuildlEditor.Instance, EditorIcons.SmartPhone);return tree;}}

每一个工具,都新建一个类,这里继承GlobalConfig,可以自动保存其中的属性,会自动在Assets下面新建一个同名文件夹存放ScriptableObject,具体点击GlobalConfig即可查看说明(已贴出)

public class OneKeyBuild : GlobalConfig<OneKeyBuild>
{[Title("一键打包按钮")] public string stringTest;public List<string> stringListTest;[Title("一键打包按钮")][Button(name: "按钮")]public void Button(){}
}
/// <summary>/// <para>/// A GlobalConfig singleton, automatically created and saved as a ScriptableObject in the project at the specified path./// This only happens if the UnityEditor is present. If it's not, a non-persistent ScriptableObject is created at run-time./// </para>/// <para>/// Remember to locate the path within a resources folder if you want the config file to be loaded at runtime without the Unity editor being present./// </para>/// <para>/// The asset path is specified by defining a <see cref="T:Sirenix.Utilities.GlobalConfigAttribute" />. If no attribute is defined it will be saved in the root assets folder./// </para>/// </summary>/// <example>/// <code>/// [GlobalConfig("Assets/Resources/MyConfigFiles/")]/// public class MyGlobalConfig : GlobalConfig&lt;MyGlobalConfig&gt;/// {///     public int MyGlobalVariable;/// }/// /// void SomeMethod()/// {///     int value = MyGlobalConfig.Instance.MyGlobalVariable;/// }/// </code>/// </example>

打开Tools/我的工具箱,
弹出页面,左边是工具名,右边是工具页面,之后写的各类型工具都可以在这里使用

后面在工具箱里实现常见的编辑器工具,敬请期待,

如果有一个Odin工具网站或者类似Nuget,里面有各种各样基于Odin实现的工具,可以选择性下载就好了,避免重复造轮子,(比如一键打包,估计已经被写了无数遍了。。。),
官方倒是有一个社区,里面不少工具,不过感觉用的人少,而且里面国内开发者也比较少,很多工具也找不到(比如excel,打包工具可以找到一个)
Odin社区的工具:https://odininspector.com/community-tools

Unity编辑器工具制作(一)相关推荐

  1. 【Unity Editor工具制作-文本转UTF-8编码、用WPS表格打开表格、用WPS表格打开】

    Unity Editor工具制作 文本转UTF-8编码 用NotePad打开 用WPS表格打开 文本转UTF-8编码 [MenuItem("Assets/文本转UTF-8编码")] ...

  2. 怎样用Unity Terrain工具制作美观的场景(四)

    怎样用Unity Terrain工具制作美观的场景(四) 1.前言 这篇文章将是这个系列最后的一篇文章了,关于unity terrain工具更详细的内容,如果后面我再用到也会给大家出续集,话不多说直接 ...

  3. 怎样用Unity Terrain工具制作美观的场景(一)

    怎样用Unity Terrain工具制作美观的场景(一) 1.前言(针对Unity Terrain的介绍) 目前地形方面terrain已经成为了unity开发的主流地形,好处是,可以用笔刷直接控制颜色 ...

  4. 用Unity制作一个很火的找不同游戏,包括核心玩法与关卡编辑器工具的实现

    玩家们心里都清楚,其实游戏的品类超级多,有些人喜欢玩moba.射击竞技类的,有些人喜欢塔防.策略.回合制类的,而又有些人喜欢经营养成.休闲益智类的.休闲益智类游戏,虽没像moba类游戏的激烈操作带来的 ...

  5. H5类似易企秀/编辑器/页面制作/开发/生成工具/软件/源码/授权

    代码地址如下: http://www.demodashi.com/demo/14960.html 项目简介 H5DS (HTML5 Design software) 这是一款基于WEB的 H5制作工具 ...

  6. Unity编辑器小工具——文件查重(MD5)

    Unity编辑器小工具--文件查重(MD5) 算法思想: 在Unity中,每一个不同资源.文件所生成MD5码是不同的,但是相同文件,路径不同.文件名不同的同一类文件的MD5码是相同的,所以可以通过生成 ...

  7. Unity编辑器扩展: 程序化打图集工具

    开始前的声明:该案例中图集所使用图片资源均来源于网络,仅限于学习使用 一.前言 关于编辑器扩展相关的知识,在前面的两篇内容中做了详细的描述,链接地址: 第一篇 :Unity编辑器扩展 UI控件篇 第二 ...

  8. Unity编辑器开发(五):实战、开发一个AB包编辑器工具

    前言 在我们上一篇(Unity编辑器开发(四):实战.开发一个AB包编辑器工具)的结尾,我们拥有了如下图中那样的一个编辑器窗口: 接下来我们来完成最后部分,也就是包括创建AB包,清理AB包,删除AB包 ...

  9. Unity教程之-制作闪亮的星星Star(三):给Star创建Unity Editor编辑器

    继续上篇文章<Unity教程之-制作闪亮的星星Star(二):创建Shader>,本篇我们来讲解 unity star editor的创建! 建立编辑器 Creating the Insp ...

最新文章

  1. MyEclipse+Tomcat部署发布webapp
  2. springboot整合elasticJob实战(纯代码开发三种任务类型用法)以及分片系统,事件追踪详解...
  3. 用C# (.NET Core) 实现抽象工厂设计模式
  4. 第7章:图像的平滑处理
  5. 微信小程序自定义变量使用,静态变量
  6. python——适用于py3的pillow图像处理模块plist组图分割
  7. 区块链开源框架 HyperLedger Fabric 学习思路分享
  8. mysql主键和外键的连接_MySQL主键和外键使用及说明
  9. 接地气的大数据来了:如何预报雾霾
  10. native8081端口 react_教你轻松修改React Native端口(如何同时运行多个React Native、8081端口占用问题)...
  11. 蓝桥杯算法题--跑步锻炼(java实现)
  12. MSP430F149串口收发程序详解
  13. 绝地求生6月23号服务器维护到几点,绝地求生6月23日更新到几点 绝地求生6月23日更新内容介绍...
  14. 分享几款UI设计师快速提升工作效率的辅助设计软件
  15. You must have administrator privileges to run...
  16. VS2008的DDK环境配置DDK下载
  17. win10防火墙推荐设置来保护计算机,大神详解win10隐藏防火墙和网络保护部分方法的完全解决要领...
  18. KMP算法图文详解(为什么是next[0]=-1、next[j]=k和k=next[k])
  19. 怎么查看服务器支持php,php怎么查看本地服务器配置信息?
  20. harbor2.1.1配置反向代理

热门文章

  1. win7错将.exe文件默认打开方式设置为记事本,如何修改?
  2. java实验Lambda语法糖_Java: 语法糖 -- Lambda
  3. 计算机教学中融入德育教育的思考与实践,信息技术课程中渗透德育教学的实践与反思...
  4. android初学者错误,iMobile9DforAndroid的入门错误
  5. 信者自信,愿者上钩。创业是福,也是罪。正确认识创业观念
  6. RHEL/CentOS/Fedora常用的 CentOS 5/6/7 yum 源(EPEL、Remi、RPMForge、RPMFusion, ius,163,sohu,阿里云)配置...
  7. 2019(石家庄)国际消防设备技术及安全产业博览会
  8. 基于SSM的零食商店管理系统
  9. 【C语言】图书管理系统
  10. 毕业设计之 ---基于机器视觉的答题卡识别