拓展Unity模块,打造私人工具库(一)
功能介绍
经过平时的项目积累,使用以及自己编写的编辑器工具越来越多,有些工具在别的项目中同样用的上,但是不希望每次都重新拷贝新代码到项目中,于是就希望能够拓展Unity模块,实现自己的工具库,方便导入工具到项目中。
通过查阅资料发现,在Unity的安装目录 Unity2017.3.1f1\Editor\Data\UnityExtensions\Unity (我的版本是2017.3.1f1)下,有一些Unity自带的模块,可以通过在该路径下放入自己的模块,就可以实现Unity新建的项目都拥有该拓展模块的功能。那么,接下来就写一个工具导入模块放入该文件夹中。
UnityExtensions文件结构基本介绍
1、ivy.xml文件
其中:version、unityVersion均为当前Unity的版本号;artifact name 标签为我们的DLL文件的相对路径。
<?xml version="1.0" encoding="utf-8"?>
<ivy-module version="2.0">
<info version="2017.3.1" organisation="Unity" module="UnityToolCenter" e:packageType="UnityExtension" e:unityVersion="2017.3.1f1" xmlns:e="http://ant.apache.org/ivy/extra" />
<publications xmlns:e="http://ant.apache.org/ivy/extra">
<artifact name="Editor/UnityToolCenter" type="dll" ext="dll" e:guid="adebbd281f1a4ef3a30be7f21937e02f" />
</publications>
</ivy-module>
2、Editor文件夹
放入dll 代码中属于编辑器拓展的代码
逻辑说明
工具初版示意图:
通过勾选UnityPackage,直接导入到项目中,简单快捷。
为了不直接将UnityPackage文件放入到Unity安装目录下,因此新增一个config.ini文件,里面配置UnityPackage文件的路径(绝对路径),例如下图:
通过读取该配置文件,加载配置下所有路径的所有后缀名为unitypackage文件,然后显示在编辑器中。
使用介绍
将脚本打成dll后,将UnityToolCenter.dll和UnityToolCenter.pdb文件放入安装目录下
修改ivy.xml文件为
<?xml version="1.0" encoding="utf-8"?>
<ivy-module version="2.0">
<info version="2017.3.1" organisation="Unity" module="UnityToolCenter" e:packageType="UnityExtension" e:unityVersion="2017.3.1f1" xmlns:e="http://ant.apache.org/ivy/extra" />
<publications xmlns:e="http://ant.apache.org/ivy/extra">
<artifact name="Editor/UnityToolCenter" type="dll" ext="dll" e:guid="adebbd281f1a4ef3a30be7f21937e02f" />
</publications>
</ivy-module>
【注意】版本号,以及dll的路径
此时,新建另一个Unity工程(同版本),就会发现菜单栏也带有Tools/UnityToolCenter,具体导入UnityPackage逻辑见下期
参考文献
https://539go.com/2017/10/20/UnityEditor-Unity%E7%9A%84%E6%A8%A1%E5%9D%97/
工具终版见下期
以上知识分享,如有错误,欢迎指出,共同学习,共同进步。