デバイス入力の設定
カメラをリモート PC から操作する場合、ウェブブラウザ上の入力イベントと、Unity 上の動作を紐付ける必要があります。Input System は入力処理を作成するのに役立ちます。
Input System の設定確認
はじめに、Render Streaming ウィザード ウィンドウで Input System の設定を確認して下さい。
入力処理用のコンポーネントの追加
前回のページ で作成したシーンを開き、ヒエラルキービューで Main Camera を選択します。 インスペクタで Input Receiver コンポーネントを追加します。
Input Receiver の初期状態は以下のようになっています.
Input Receiver コンポーネント を Broadcast コンポーネントのプロパティに追加します。
Input Actions の設定
Input System にある Input Actions という機能を使います。Input Actions は Unity の動作と入力とをマッピングするための仕組みです。エディタツールを使用することで誰でも簡単に利用できます。今回はマウスの動作を定義するために利用します。
プロジェクトビューで右クリックして、コンテキストメニューから Create > Input Actions を選択します。
プロジェクトビューでアセット名を Control に変更します。Control アセットをダブルクリックすると、Action editor が表示されます。
Actions Maps の + ボタンをクリックして項目を追加します。
Actions の項目を Look
にリネームします。
項目を選択して Action Type を Value
に変更し、Control Type を Vector2
に変更します。
次に、<No Binding> の項目を選択して、Mouse > Delta に Binding の Path を追加します。
最終的に以下のような設定になります。最後に Save Asset ボタンを押して設定を保存してください。
InputReceiver
コンポーネントの設定
Control アセット を InputReceiver
コンポーネントの Input Actions にドラッグします。
カメラを回転するためのスクリプトを追加します。インスペクタに移動し、Add Component ボタンをクリックし New Script を選択肢してスクリプトを作成します。アセット名を PlayerController
に変更します。
以下のようにスクリプトの内容を編集します。
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerController : MonoBehaviour
{
public void Look(InputAction.CallbackContext value)
{
Vector2 input = value.ReadValue<Vector2>();
transform.eulerAngles += new Vector3(-input.y, input.x, 0);
}
}
スクリプトをコピーしてファイルを保存したあと、 InputReceiver
コンポーネントの Look イベントに PlayerController.Look
を割り当てます。
ブラウザでの動作確認
ブラウザ上のマウス操作によってカメラが回転します。カメラが動かない場合は Render Streaming ウィザード ウィンドウでエラーが出ていないことを確認してください。
次のステップ
入力処理を Input Actions の機能を利用して実現することができました。Unity Render Streaming の機能をより理解したい場合は、まずは サンプルページ を見ることをお勧めします。また、ウェブアプリケーションのカスタマイズ には、ウェブインターフェースの変更方法について記載されています。