UnityではiOS用のappを作成する機能があります。これを利用すれば、Objective-Cなんて勉強しなくてもiOSデバイスで好きなプログラムを簡単に実行することができます。
ライセンス
UnityからiOS機能を購入して、アクティベーションします。ちなみにみーは2012.3頃のiOS,Android機能無料キャンペーンでタダでライセンスを取得しました。通常は34000円(2012.8.3現在)だそうです。
ちなみに2013.10.28現在、無料版でiOSもAndroidも普通にビルドできるようになったので、関係ないですね。
環境
- Unity 3.5.4f1
- Xcode 4.4
- Mac OS X Lion
- iPod touch 4G (脱獄済)
方法
Xcodeを使ったことがないのにUnityでiOSアプリを作成すると、Unityに原因があるのかXcodeに原因があるのかが分かりません。はじめはXcodeで簡単なアプリを作成(テンプレートそのままetc.)して、それをiOSデバイスにインストールできることを確認することを強く推奨します。
Unityにて
UnityのEdit > Project Settings > Player
Company NameやProduct Name, Iconを適当に設定します。
Bundle Identiferを設定します。みーの場合はnet.atsuhiro-me.<アプリ名>としています。ここの設定は必須です。
Unity > File > Build SettingsでiOSに設定したあと、Build and Runを実行します。するとXcodeが起動します。
Xcodeにて
こちらに書いたように通常のapp作成と同じ手順です。いくつか注意点があります。
エラーリスト
Apple Mach-O Linkerが大量のエラー
ld:warning: ignoring file /Users/..../TestiOS/Libraries/libiPhone-lib.a,missing required architecture i386 in file/Users/..../TestiOS/Libraries/libiPhone-lib.a (2 slices)
Undefined symbols for architecture i386:
などというエラーが出ている場合は、Xcodeの上部にあるSchemeを、Unity-iPhone>SimulatorからiOSdeviceに変更します。iOSシミュレーターを使用する場合は、左の画像のように、UnityのTarget iOSVersionでSimulatorを選択します。
.appが赤字から黒字にならない
みーも原因がよくわからないのですが、時々発生します。よく調べるとappファイルは書きださているようで、
/Users/xxx/Library/Developer/Xcode/DerivedData/Unity-iPhone-<xxxxxxxxxxx>/Build/products
にはappファイルが存在します。
Code Sign error
Code Sign error: The identity "iPhone Developer" doesn"t match any valid, non-expired certificate/private key pair in your keychains
The identity "iPhone Developer" doesn"t match any valid, non-expired certificate/private key pair in your keychains
というエラーが表示されたら、Unity-iPhoneのProjectのBuild Settings の Code Signing の項目をすべてDon"t Code Signに設定します。もう一度Buildすると正常に実行されるはずです。
実行例
6つの立方体を回転させるサンプルを作成し、上記の方法でiPod touch 4Gにインストールし、実行しました。このレベルのグラフィックは60fpsでもまったくコマ落ちせずに実行されたので、最近のモバイルデバイスはすごいなあ〜と感動しました。
on iPod touch 4G
(2012/08/02)