我正在使用Unity3D for iOS中的插件。出于某种原因,我需要在本机代码中指定一些代码(Xcode中的.mm),以便在Unity3D 4.1之前编译,其他代码在Unity3D 4.1(包括)之后编译。也许是这样的:
#if UNITY_VERSION < UNITY_4_1
//Some code be compiled before Unity4.1
#else
//Some code for new version
#endif
我知道Unity3D编辑器中有一个Platform Dependent Compilation,但是如何在Xcode中获取引擎版本并执行“基于Unity Engine版本的条件编译”?任何建议将不胜感激!
编辑:也许我可以为不同的版本编写两个.mm文件,并在[PostProcessAttribute]中删除其中一个.mm文件。但我认为这不是一个好主意......
答案 0 :(得分:0)
目前还不清楚你要做什么。您是否通过注入Unity创建的XCode项目来构建您的本机代码?或者您是否在构建期间将Unity本机代码构建到Unity包含的库中?
AFAIK没有办法让XCode提前知道你正在使用哪个Unity版本而不检查Unity的安装并找出确定它的方法。
如果您执行后者,即构建包含在Unity构建中的本机代码库。在这种情况下,您需要两个独立的库,并指示用户包含相关的库。
如果您正在执行前者,即将新的本机代码注入Unity创建的XCode项目中,Unity会导出#defines,以便您可以确定您的本机代码需要编译的Unity版本。