代码之家  ›  专栏  ›  技术社区  ›  onevcat

我可以在Xcode中获得Unity3D引擎版本吗?如何根据该版本进行条件编译?

  •  1
  • onevcat  · 技术社区  · 11 年前

    我正在为iOS开发Unity3D插件。出于某种原因,我需要在原生代码中指定一些代码(Xcode中的.mm),在Unity3D 4.1之前编译,其他代码在Unity3D4.1之后编译(包括)。也许是这样的:

    #if UNITY_VERSION < UNITY_4_1
        //Some code be compiled before Unity4.1
    #else
        //Some code for new version
    #endif
    

    我知道有一个 Platform Dependent Compilation 在Unity3D编辑器中,但我如何在Xcode中获得引擎的版本并进行“基于Unity引擎版本的条件编译”?任何建议都将不胜感激!

    编辑:也许我可以为不同的版本写两个.mm文件,然后在中删除其中一个 [PostProcessAttribute] 。但我认为这不是一个好主意。。。

    1 回复  |  直到 11 年前
        1
  •  0
  •   Justin    11 年前

    目前还不清楚你想做什么。你是通过注入Unity创建的XCode项目来构建你的本地代码吗?或者,您正在将您的本地代码构建到Unity在构建过程中包含的库中?

    AFAIK如果不检查Unity的安装并找出确定的方法,XCode就无法提前知道您正在使用哪个版本的Unity。

    如果您执行后者,即构建一个包含在Unity构建中的本地代码库。在这种情况下,您需要两个独立的库,并指示用户包含任何相关的库。

    如果你正在做前者,即将新的本地代码注入Unity创建的XCode项目,那么Unity会导出#defines,这样你就可以确定你的本地代码需要针对哪个版本的Unity进行编译。