拓展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 代码中属于编辑器拓展的代码

逻辑说明

工具初版示意图:

![这里写图片描述](https://img-
blog.csdn.net/20180820223019383?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI2OTk5NTA5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

通过勾选UnityPackage,直接导入到项目中,简单快捷。

为了不直接将UnityPackage文件放入到Unity安装目录下,因此新增一个config.ini文件,里面配置UnityPackage文件的路径(绝对路径),例如下图:
![这里写图片描述](https://img-
blog.csdn.net/2018082022321790?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI2OTk5NTA5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

![这里写图片描述](https://img-
blog.csdn.net/2018082022325173?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI2OTk5NTA5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

通过读取该配置文件,加载配置下所有路径的所有后缀名为unitypackage文件,然后显示在编辑器中。

使用介绍

将脚本打成dll后,将UnityToolCenter.dll和UnityToolCenter.pdb文件放入安装目录下

![这里写图片描述](https://img-
blog.csdn.net/2018082022350796?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI2OTk5NTA5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

修改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/

工具终版见下期

以上知识分享,如有错误,欢迎指出,共同学习,共同进步。