Unity Remote (現在の最新バージョンは4)とは、Android や iOS アプリの開発を補助するためにデザインされたモバイル用アプリです。Unity エディター上でゲームを再生中に、Unity Remote と Unity を繋げることができます。エディターで出力される映像をデバイスのスクリーンに映し出し、デバイスでの入力はリアルタイムに Unity エディターで実行されているゲーム画面に反映されます。こうした機能により、ゲームが実際にはどう見えるのか、ターゲットにしているデバイスでどう操作するのかということに対して、テストの度にビルドするという煩わしい思いをしなくとも十分なデータを得られます。
Unity Remote はバージョン4で全面的に書き直され、以前のバージョンとの互換性はなく、完全に別物となっています。
Unity Remote は現在(Windows や OSX と USB で繋がっている) Android デバイスと iOS デバイス( OSX 限定で、USB を通して繋がっている iPhone, iPad そして iPod touch)をサポートしています。
実行中の Unity プロジェクトの Game ビュー がデバイスのスクリーンに複写されますが、フレームレートは引き下げられます。デバイスからは以下の入力データがエディターにストリーミングされます。
Remote アプリはエディターの実行画面で映るものをデバイスで表示し、デバイスの入力を受け取っているだけということに注意してください。ゲームが実際に処理されているのはデスクトップマシンの Unity エディター上でのことであり、そのためパフォーマンスはビルドされたアプリを完璧に反映したものではないのです。
Unity Remote は自身でビルドできる Unity プロジェクト形式で無料ダウンロード、またはプリビルドされているアプリをデバイスのアプリストアからダウンロードすることができます。
アプリのダウンロードが終了したらインストールしてください。その後デバイスで実行し、USB ケーブルを使用したデバイスとコンピューターの接続も行ってください。
Unity と自身のデバイスを協調動作させるために、Unity の Editor 設定(メニュー: Edit > Project Settings > Editor )を開き、Unity Remote セクションから使用するデバイスを選択してください。
この状態でエディターの再生ボタンをクリックすると、Unity が Remote アプリに接続しているため Game ビューと同じようにデバイスでゲームが再生されているのが分かるはずです。ゲームをプレイしている間、デバイスで実際に実行しているかのように(加速度計などの)デバイスからの入力が反映されます。
現在 Unity Remote は 同系列デバイスの同時接続(すなわち、2台の iPhone や2台の Android による接続)をサポートしていません。この仕様に従い、最初に検出されたデバイスが自動的に同期用に選出されます。しかし、iOS と Android デバイスを一つずつ接続しておくと上記の Editor Settings (メニュー: Edit > Project Settings > Editor )からどちらを使用するか選ぶことができるので便利です。
Unity Remote を使用している場合、実際には Unity エディター上でゲームが実行され、同時にターゲットデバイスへとビジュアルコンテンツがストリーミングされています。エディターとデバイスとの帯域幅は限られているため、ストリームは転送の前にかなりの圧縮をかけなければなりません。この圧縮で必然的に画像クオリティは下がってしまいます。
Editor settings の Unity Remote セクション(メニュー: Edit > Project Settings > Editor )では JPEG と PNG のどちらにするかで圧縮方式を切り替え、スクリーンイメージ解像度のサイズ削減も選択的に行うことができます。PNG 圧縮は“ロスレス”です(すなわち、画像クオリティが低下しません)が、帯域幅を JPEG よりも使用します。サイズを抑えた画像は解像度がフルのものよりも必要な帯域幅が少なくなります。これらの設定を変更することで、画像の精度と必要なフレームレートとの釣り合いを取ることができます。
しかし、Unity Remote はゲームをデバイス上で実行したときの見た目や操作の感覚がどんなものかという、おおよそのチェックを素早く行うことに主眼を置いたものであるということは覚えておくべきです。時折ビルドを行い、“本物の”アプリのテストを確実にするようにしてください。
USB を通して iOS デバイスへの接続を確立するために、Unity は 3rd パーティユーティリティー(iproxy)を使用していますが、こちらは時々おかしな挙動を起こすことがわかっています。問題を解決するため、以下の手順を試してください。
killall unityiproxy
コマンドを実行してください。その後、エディターを再起動してください。iOS デバイスの再接続や再起動を行えばほとんどの場合、高い確率で正常に接続できるようになっているでしょう。