我们在项目开发过程中难免会使用到一些插件,不论是第三方插件还是自定义插件,本文别的不谈,主要是针对之前博客中发布了一个自己开发的MySQL插件(博客地址:https://blog.csdn.net/u010925014/article/details/88876586)。有朋友反馈说,打包会出现问题,插件无法被打包进去,这里统一回答下大家。
一般我们项目中用到的插件类型常用的有以下三种:"Developer"、"Editor"、"Runtime"。Developer类型的插件在编辑器和开发模式下是可用的,但是发布会过滤,也就是不会被引擎打包工具打包进去的,Editor类型只在编辑器模式下有效,Runtime类型为在运行时有效,或者也可以理解为任意模式下有效。所以如果你的插件需要在运行时或者打包发布进去时,则需要使用Runtime类型,并且如果需要成功发布,还可能需要做一些跨平台限定,比如说有的需要在Win64平台运行的,可能发布Win32就会报错,或者是Linux平台等等。这里废话不多说了,我后来查看了插件中的设置,发现类型是开发模式:
这里很抱歉,当初在开发的时候没有考虑后期发布的事情,只是在编辑器下开发完了。那么解决方案也就很简单了,将类型需改为Runtime即可,如下图所示:
这里修改了类型,另外为了避免跨平台出现问题,对支持的平台做了限定,只在Win64/32平台支持。再次打包,就可以顺利打包完成了,如果还是出现问题,那就不是插件问题了,请检查下项目的打包设置或者其他问题。
在文章最后,可能会有同学疑惑,我能不能自定义插件的时候,把类型都设置为Runtime呢,那不就解决了一切问题,答案是当然可以,但是会有一个问题。如果是你自己的项目,那随便,因为不需要考虑打包的体积,比如一个连连看,正常几兆的安装包,结果你的几十兆,是不是体积就很大。例如编辑器插件,它的功能是只需要在编辑器模式下运行就可以了,游戏运行的过程中不需要它,对于这种如果你把它也打包发布到项目安装包里面去了,那无疑增加了不必要的磁盘开销,商业项目肯定不允许这样做的。