ユーザー管理
Input System では、InputUser
クラスを介して複数ユーザーの管理機能がサポートされます。これは、この管理機能が組み込まれたプラットフォーム (Xbox や PS4 など) でのユーザーアカウント管理機能と、1 人以上のローカルユーザーへの Device の割り当てを管理する機能から成ります。
ノート: ユーザー管理 API は、本質的に低レベルの機能です。
PlayerInputManager
(コンポーネント を参照) の標準機能を使用すると、ユーザー管理を簡単に設定できます。ここで説明する API は、より細かくユーザー管理を制御する必要がある場合に役立ちます。
Input System では、各 InputUser
が、アプリケーションを操作している人を表します。例えば、1 台のコンピューターまたはデバイスで複数のユーザーが一緒にゲームをプレイ (ローカルマルチプレイヤー) できるようにすることができます。この場合、各ユーザーを 1 つ以上の Input Device と組み合わせ ます。
PlayerInputManager
クラスは、内部で InputUser
を使用してユーザーを処理します。
ノート: エディターでは、再生モードの終了時にすべての
InputUser
インスタンスが自動的に削除されます。これにより、デバイスとの組み合わせもすべて削除されます。基本的に、InputUser
はプレイヤー専用の API と見なされます。
Device との組み合わせ
InputUser.PerformPairingWithDevice
メソッドを使用すると、新しい InputUser
インスタンスを作成して InputDevice
と組み合わせることができます。新しいユーザーインスタンスを作成しない場合は、必要に応じて、既存の InputUser
インスタンスを渡して Device と組み合わせることもできます。
特定の InputUser
と組み合わされている Device を照会するには、InputUser.pairedDevices
を使用します。組み合わせを削除するには、InputUser.UnpairDevice
または InputUser.UnpairDevices
を使用します。
最初の設定
ユーザーを作成したら、InputUser.AssociateActionsWithUser
を使用して Input Action を関連付け、さらに InputUser.ActivateControlScheme
を使用して Control Scheme を関連付けてアクティベートすることができます。InputControlScheme.FindControlSchemeForDevice
を使用すると、以下のように、指定した Action と Device に一致する Control Scheme を選択できます。
var scheme = InputControlScheme.FindControlSchemeForDevice(user.pairedDevices[0], user.actions.controlsSchemes);
if (scheme != null)
user.ActivateControlScheme(scheme);
Control Scheme をアクティベートすると、ユーザーの Action に対するアクティブな Binding マスクが、その Control Scheme に自動的に切り替わります。
Device との接続の切断
組み合わされた Input Device との接続がセッション中に切断された場合は、システムによって InputUser
クラスに通知が送信されます。Device の追跡が継続され、Device が再び使用可能になると、自動的に組み合わせが復元されます。
これらの変更に関する通知を受け取るには、InputUser.onChange
イベントにサブスクライブします。
デバッグ
アクティブなユーザーをデバッグする方法 については、デバッガーのドキュメントを参照してください。