サンプルプロジェクト「Batching」を開いて移植作業を行います。
まず、Unityを起動し、ダウンロードしたUnityプロジェクトを開きます。[File]→[Open Project...]から[Project Wizard]を開き、[Open Other...]ボタンを押して先ほどダウンロードした[Batch]のルートディレクトリを指定して[Open]をクリックします。この状態で[Play]ボタンを押せば、PC上で「Batching」サンプルをプレビュー可能です。
次に、メニューから[File]→[Build Settings...]を開きます。[Build Settings]ウィンドウで、ビルド先のプラットフォームを指定して必要な設定が行えます。もともと、この[Batching]プロジェクトはiOS用のサンプルアプリケーションなため、[Platform]には「iOS」が指定されているかと思います。
[Platform]を「Android」に変更し、[Switch Platform]ボタンを押します。すると、プログレスバーが一瞬表示され、[Platform]内のUnityロゴが「Android」の部分に表示されます。実は、これでほぼ移植作業は終わりです。
[Build Settings]ウィンドウから次に[Player Settings...]ボタンをクリックし、[Inspector]ウィンドウにプレイヤー設定画面を表示します。ここで細かいビルド設定を行えます。何も設定を変えなくてもビルドは可能です。このウィンドウでAndroidアプリ開発時に必要な設定項目であるパッケージ名やSDカード利用・インターネット利用のパーミッション設定、サポートAPIレベルなどが設定できます。
Android実機をUSBでPC本体と接続します。このとき、Android端末側は[USBデバッグ]を[On]にしておいてください(ほとんどのAndroid端末では、[設定]→[アプリケーション]→[開発]→[USBデバッグ]で変更できます)。
[Build & Run]ボタンをクリックします。すると、ビルド時に作成するAPKファイル(Androidのアプリケーションパッケージファイル)名を求められるので、適当なファイル名を指定して[Save]ボタンを押します。ここでは。「BatchingAndroid」というファイル名を指定しました。
すると、プログレスバーが出てAndroid用のビルドが開始します。そして、自動的に端末へのデプロイ(配置)が行われます。
デプロイが終わると、自動的にAndroid端末上でアプリが開始されます。これでもう実機への移植が完了してしまいました。
このように、Unityを使うと、いかに簡単にAndroid端末用のビルドが完了してしまうか、実感いただけたかと思います。
上記のように、数ステップでiOSからAndroidへの移植とデバッグ環境構築が完了してしまいました。移植に必要だったコストは「Android AddOn」の購入400ドルと、数分の設定変更の作業だけです。
コスト削減の実例としては、これまでiOS用に開発したアプリをAndroidに移植する際、iOS版開発コストの7〜8割のコストを必要としてたという例があります。同じ動作を、全く違うプラットフォーム・言語で再現しなければならないため、かなりの部分のコードがスクラッチで書き直しとなり、一から開発する場合に近いコストを必要としていたためです。
しかし、Unityを導入することで利用することで50?70%ほどのコスト削減が可能となりました。削減てきたコストでもっと企画を練ったり、別の製品開発に投資したりできます。さらに新しい製品の投入サイクルを早めることが可能になります。
当然このような疑問が起こるかと思います。
これは、「そもそも何故同じプロジェクトがWindowsやMac OS Xなどでも動作するのか」という疑問ともつながるのですが、Unityは各OSごとにチューニングされたネイティブコードベースのエンジンと、Unityスクリプトを実行するための仮想マシン(VM)から構成されています。アプリをビルドした際には、これらがプログラムのパッケージ内に含まれます。
描画はOSごとにチューニングされたネイティブライブラリが行い、高速なスクリプト実行環境としてVMを利用することで、「高速な処理」「マルチOS対応」を実現しています。つまり、「フルチューンしたアプリ」「仮想マシン」のイイトコどりを実現している形です。
従って、「仮想マシン上で動作するんだから、ネイティブコードより速いはずがない」という指摘は、Unityには当てはまらないといえるでしょう。
そしてVMには、マイクロソフトの.NET Framework互換のオープンソースVMである「Mono」を利用しています。そして、この「Mono」がWindowsはもちろん、Mac OS X、iOS、Android OSをサポートしているため、Javaのようにその上で動作するUnityスクリプトに「Write Once, Run Everywhere」を提供しているのです。
これはUnityがスクリプト言語としてC#をサポートする理由にもなっています。この辺りについては、@IT記事「iPhoneでC#アプリが審査に通るワケ」にも詳しく記載されているので、「何故ではiOSの規約に違反しないのか」など、興味ある方はご覧になってください。
次ページでは、デバッグに便利な、Unity 3.2の「Android Remote」機能や、Unityの機能を拡張できるプラグインを紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.