Photon QuantumとMultiplayer Play Modeを組み合わせると、Virtual Playerに好きなメッセージを送れて便利
Photon QuantumのSDKが無償化してから早2年。もう説明は不要ですよね!
Unity6から利用できるMultiplayer Play Mode(以下MPPM)と組み合わせることで、
とても便利にマルチプレイのテストを行うことができます。
百聞は一見に如かずということで、まずは動画をご覧ください。
昔は、マルチプレイのテストをするにはParrelSyncなどを用いて複数Editorを立ち上げていたものですが、
MPPMはPlayボタンを押すと追加でPlayerを最大3つまで起動してくれる非常に便利なパッケージです。
(この追加で立ち上がったPlayerのことを、Virtual Playerと呼びます。)
しかし、MPPMはあくまでVirtual Playerを起動してくれるだけ。
それぞれのPlayerで「QUICK PLAY」ボタンを押してマッチングしないとマルチプレイのテストはできません。
・・・のはずなのですが、Photon QuantumのサンプルメニューではEditor上で「QUICK PLAY」を押すだけで
全てのVirtual Player上でも「QUICK PLAY」を押したのと同じ挙動をしてくれます。
これ別にMPPMにVirtual Playerにメッセージを送る仕組みがあるわけではなく、
Photon Qunatumが自前でUnity Editor上にWebSocketサーバーを立ち上げてVirtual Playerと通信しているみたいなんですよね。
Photonさん頑張りすぎです。
独自のメッセージを送りたいときも、こんな感じで簡単に書けます。
// コマンドを定義して、
public class TestCommand : Quantum.QuantumMppmCommand
{
// UnityEngine.JsonUtilityでSerialize/Deserializeされるので、それに対応してる型なら載せられる
public string Text;
// ここがVirtual Playerで実行される
// Task版もあり
public override void Execute()
{
UnityEngine.Debug.Log("TestCommand executed");
}
}
// こうやって呼び出す。
// Virtual Player上ではMainEditorはnullなので無視される。
Quantum.QuantumMppm.MainEditor?.Send(new TestCommand {
Text = "Hello, Virtual Player!"
});Photon Quantum最高〜!
でもこの仕組み自体はPhoton Quantumに依存していないので単体でも配布して欲しい・・・。