プログラミングガイド

Modoiumは、ネットワークを通じて接続されたモバイルデバイスから送信される入力イベントを基に、モバイル入力デバイスをシミュレーションし、Unityエディター内でモバイル入力を直接使用できるようにします。基本的にModoiumは、プロジェクト設定やコードの修正を必要とせずに、これらの入力デバイスのシミュレーションが自動で動作することを目指しています。ただし、使用する入力処理ツールによっては、Modoiumの機能を最大限に活用するために従うべき事項があります。

入力

Unityには、入力処理の開発のために提供されている代表的なツールが2つあります。それは、Input SystemUnityEngine.Inputです。ModoiumはInput Systemを使用すると完全に統合できるため、入力処理ツールとしてInput Systemの使用を強くお勧めします。もちろん、ある程度制限された範囲内でUnityEngine.Inputを使用することも可能です。

Input System

入力デバイスのシミュレーションが可能なInput Systemの柔軟な構造のおかげで、Input Systemを使用するプロジェクトでは、Modoiumをインストールするだけで正常に動作します。接続されたモバイルデバイスの入力デバイスのうち、ModoiumでサポートされているすべてのInputDeviceをUnityエディターで使用できるため、Input Bindingを設定する際にマウス入力を気にする必要はありません。

  • サポートされている入力デバイス
    • Touchscreen
    • Keyboard : Key.Escape(Android Backボタン)

UnityEngine.Input

UnityEngine.Inputが使用する内蔵入力モジュールの構造的な制限により、ModoiumはUnityEngine.InputAPIを通じて入力デバイスのシミュレーションデータを出力することができません。その代わりに、Modoiumが提供するModoium.Service.InputAPIを使用してモバイルデバイスの入力イベントを処理する必要があります。ただし、Modoium.Service.InputAPIはUnityEngine.Inputと同じAPIを提供しているため、(1)既存のコードで使用しているすべてのUnityEngine.InputModoium.Service.Inputに変更するか、(2)入力処理コードが記述されたすべてのファイルの冒頭に以下の文を追加するだけで対応できます。

using Input = Modoium.Service.Input;

  • サポートされているAPI
namespace Modoium.Service {
    class Input {
        static bool touchSupported;
        static bool touchPressureSupported;
        static bool multiTouchEnabled;
        static bool touchCount;
        static Touch GetTouch(int index);

        // KeyCode.Escape (Android Backボタン)
        static bool GetKey(KeyCode key);
        static bool GetKeyUp(KeyCode key);
        static bool GetKeyDown(KeyCode key);

        // Note: その他のAPIは対応するUnityEngine.Input APIを単純に呼び出します。
    }
}

シーンで使用されているUnityEngine.EventSystems.EventSystemUnityEngine.InputベースのInput Moduleを使用している場合、ModoiumはModoium.Service.Inputが使用されるようにBaseInputModule.inputOverrideを設定します。もしカスタム入力のためにこの機能を使用している場合は、ご注意ください。

プロジェクト設定

以下のように、Project SettingsでModoium Remoteのさまざまな動作を設定することができます。

  • Simulate Touch With Mouse : マウス入力をもう1つのTouchとしてシミュレーションします。
  • Enable Android Back Button Input : プレイ中にAndroidのBackボタンを押すと、アプリで接続を切断する代わりにEscapeキーの入力として動作します。

ビルド

Modoium Remote Unityパッケージのすべての機能はUnityエディター上でのみ動作し、ビルド結果には一切影響を与えません。そのため、Modoium Remoteがインストールされた状態でも安心してプロジェクトをビルドすることができます。