Unity判断Package包含指定库
前言
这里是前言介绍。
正文
在开发Unity的package并且推送到Package Manager时,有时需要判断项目工程中有没有包含某个package。一种可行的解决办法是在当前package的Assembly definition(asmdef)文件的“Version Defines”中的Resource
中添加想要判断的package,然后设定一个对应的Define
,详细可见https://docs.unity3d.com/2022.2/Documentation/Manual/class-AssemblyDefinitionImporter.html。假设我们添加的“Define”叫“PACKAGE_1”添加后,我们在代码中就可以这样写:
1 | #if PACKAGE_1 // 如果包含package1#else // 如果不包含package1#endif |
但是,此时又会出现另一个问题:如果我们想判断当前项目包不包含自己的package怎么办?在“Version Defines”中我们只能添加当前项目中包含的package,而我们的项目中是不可能包含我们在开发的package的。解决办法也很简单——直接编辑asmdef文件,在他的versionDefines
中加入如下代码,替换对应的name
和define
使其对应你的package即可,如有需要也可以添加expression
:
1 | "versionDefines": [ { "name": "com.mycompany.mypackagename", "expression": "", "define": "MY_PACKAGE" } ], |
之后,就可以像上面一样用#if MY_PACKAGE
判断当前项目有没有包含你自己的package了。
to be continued…
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Tamsiree!
评论