This document is about: QUANTUM 3
SWITCH TO

This page has not been upgraded to Quantum 3.0 yet. The information may be out of date.

マルチクライアントランナー

はじめに

Quantumのマルチクライアントランナーは、複数のローカルプレイヤーが同じQuantumルームで一緒にプレイできる強力なツールです。このツールは、ゲームを毎回ビルドすることなく、テストやデバッグを行いたい開発者にとって特に便利です。

必要な設定

マルチクライアントランナーが正しく動作するためには、いくつかの前提条件が必要です。

以下の項目を確認してください:

  • 有効なAppId:これは、Photonウェブサイトのダッシュボードでゲームを登録することで取得できます。
  • 正しく構成されたPhoton Server Settings。これらの値は、ゲームのプロジェクトファイル内にあるスクリプタブルオブジェクトを開いて調整および確認できます。
  • QuantumMultiClientRunnerプレハブがゲームシーンにあることを確認します。

セットアップ

始めるには、QuantumMultiClientRunnerプレハブに移動し、それをゲームシーンにドラッグします。このプレハブは、マルチクライアントランナーの例として実装されています。

Runner Search Screenshot

プレハブをゲームシーンに配置したら、それを選択し、QuantumMultiClientRunnerコンポーネントを表示します。

Multi Client Runner

このコンポーネントには、いくつかの構成可能な値があります:

  • DisableOnStart: マルチクライアントランナーを利用する際は、通常のゲーム設定に含まれる量子スクリプト(EntityViewUpdaterInputCustomCallbacksなど)を無効にする必要があります。これらのスクリプトを無効化スクリプトのリストに追加してください。
  • EditorSettings: 最初のクライアント以降の追加クライアントに対して、デフォルト以外のエディター設定を提供することができます。例えば、ギズモの色を変更することができます。
  • AppSettings: 必要に応じて、デフォルト以外の異なるサーバーアプリ設定を提供できます。例えば、通常とは異なるリージョンを指定することができます。
  • RuntimeConfig: オプションのカスタムランタイム設定。
  • PlayerCount: 最大プレイヤー数。
  • InitialPlayerCount: ゲームを開始するプレイヤー数。
  • RuntimePlayer[]: オプションのカスタムランタイムプレイヤー設定。
  • PlayerInputTemplate: 各クライアントに対してインスタンス化されるプレイヤー入力テンプレート。これは、Unityのメッセージ/メソッドvoid PollInput(CallbackPollInput c)を実装したUnityスクリプトを含む必要があります。これを正しく実装したスクリプトの例は以下の通りです。

C#

  public void PollInput(CallbackPollInput callback)
   {
    Quantum.Input i = new Quantum.Input();

    var direction = new Vector3();
    direction.x = UnityEngine.Input.GetAxisRaw("Horizontal");
    direction.y = UnityEngine.Input.GetAxisRaw("Vertical");

    i.Jump = UnityEngine.Input.GetKeyDown(KeyCode.Space);

    // convert to fixed point.
    i.Direction = direction.ToFPVector3();

    callback.SetInput(i, DeterministicInputFlags.Repeatable);
  }
  • EntityViewUpdater: 各クライアントに対してインスタンス化されるオプションのカスタムEntityViewUpdaterゲームオブジェクト。そうでない場合は、各クライアントに対してデフォルトのEntityViewUpdaterの新しいインスタンスが作成されます。

プレイ

セットアップが完了したら、マルチクライアントランナーを使用する準備が整いました。

ゲームが実行されると、ゲームウィンドウの左上にメニューが表示されます。

Runner Runtime Screenshot

このメニューには、各ローカル接続クライアントを制御するためのいくつかのトグルが含まれています:

  • New Client: 追加のオンラインクライアントを追加
  • I: クライアントの入力をトグル
  • V: クライアントのビューをトグル
  • G: クライアントのギズモをトグル
  • X: クライアントを切断

同時に複数をトグルして、複数のクライアントを一度に制御することもできます。

コード例

マルチクライアントランナーのメソッドは、ユーザーコードを介しても制御できます。

C#

  public void CreateNewLocalClient()
  {
    var multiclient = FindObjectOfType<QuantumMultiClientRunner>();

    // initializes a new local player
    multiclient.CreateNewPlayer();
  }

  public void ShutDownLocalClient()
  {
    // find the instance you want to shut down
    var player = FindObjectOfType<QuantumMultiClientPlayer>();

    // stops the local player instance
    player.Stop();
  }

Back to top