1

Unity3D for iOS のプラグインに取り組んでいます。何らかの理由で、Unity3D 4.1 の前にコンパイルするネイティブ コード (Xcode の .mm) 内のコードと、Unity3D 4.1 (含む) の後にコンパイルするコードを指定する必要があります。多分このようなもの:

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

Unity3D エディターにプラットフォーム依存のコンパイルがあることは知っていますが、Xcode でエンジンのバージョンを取得し、「Unity Engine バージョン ベースの条件コンパイル」を行うにはどうすればよいですか? どんな提案でも大歓迎です!

編集:おそらく、異なるバージョンの .mm ファイルを 2 つ作成し、[PostProcessAttribute]でそのうちの 1 つを削除できます。しかし、それは良い考えではないと思います...

4

1 に答える 1

0

あなたがやろうとしていることは正確には明らかではありません。Unity が作成する XCode プロジェクトに挿入してネイティブ コードをビルドしていますか? それとも、ビルド中に Unity に含まれるライブラリにネイティブ コードをビルドしていますか?

私の知る限り、Unityのインストールを調べてそれを判断する方法を見つけ出さなければ、使用しているUnityのバージョンをXCodeが事前に知る方法はありません。

後者を行う場合、つまり、Unity のビルドに含まれるネイティブ コード ライブラリをビルドする場合。その場合、2 つの別個のライブラリが必要になり、関連するライブラリを含めるようにユーザーに指示します。

前者を実行している場合、つまり、Unity が作成した XCode プロジェクトに新しいネイティブ コードを挿入している場合、Unity は #defines をエクスポートするため、ネイティブ コードをコンパイルする必要がある Unity のバージョンを判断できます。

于 2013-05-03T19:33:36.947 に答える