This document is about: FUSION 2
SWITCH TO

2 - シーンとプレイヤー

概要

ここでは、シンプルなシーンのセットアップと、プレイヤーのプレハブの作成方法を説明します。この章で、各クライアントのプレイヤーオブジェクトがスポーンできるシーンを動作させる方法を学びます。

シーンのセットアップ

まず空のシーンから始めましょう。Unityのヒエラルキータブを右クリックし、Fusion > Scene > Setup Networking in Sceneを選択します。

add networking

これでシーンにPrototype RunnerPrototype Network Startが追加されます。

add networking
  • Prototype Runnerに含まれるNetworkRunnerは、Fusionのシミュレーションを実行するコアコンポーネントです。またNetwork Eventsスクリプトによって、プレイヤーのセッションへの参加や退出などのイベントを簡単に独自実装を紐づけることができます。
  • Prototype Network Startはプロトタイピング用のコンポーネントで、Fusionのセッションに素早く参加するためのブートストラップのGUIが含まれます。

次にシーンに床を追加しましょう。Unityのヒエラルキータブを右クリックし、3D Object > Planeを選択し、名前をFloorにして、位置を(0, 0, 0)にリセットします。

add networking

これでシーンのセットアップは完了です。

プレイヤープレハブの作成

次にプレイヤーオブジェクトを作成します。 ヒエラルキーで右クリックし、3D Object > Capsuleを選択し、名前をPlayerCharacterにします。

上記にNetworkObjectコンポーネントを追加します。このコンポーネントによって、ゲームオブジェクトにはネットワークIDが付与され、全てのピアがそのオブジェクトを参照できるようになります。

さらにCharacterControllerコンポーネントを追加します。これは後でプレイヤーキャラクターを移動するコードを記述するために使用されます。

最後にNetworkTransfomrコンポーネントを追加します。NetworkTransformによって、オブジェクトの位置が自動的に他のクライアントへ同期されます。

PlayerCharacterProjectウインドウにドラッグしてプレハブを作成した後、オブジェクトをシーンから削除してください。これでプレイヤーキャラクターをスポーンする準備が完了しました。

プレイヤーのスポーン

シングルプレイゲームとは異なり、シーン上にプレイヤーオブジェクトを一つ置くだけでは不十分です。マルチプレイゲームでは、セッションに参加するプレイヤーごとに、プレイヤーオブジェクトをスポーンする必要があります。PlayerSpawnerスクリプトを作成して開き、以下のコードを追加してください。

C#

using Fusion;
using UnityEngine;

public class PlayerSpawner : SimulationBehaviour, IPlayerJoined
{
    public GameObject PlayerPrefab;

    public void PlayerJoined(PlayerRef player)
    {
        if (player == Runner.LocalPlayer)
        {
            Runner.Spawn(PlayerPrefab, new Vector3(0, 1, 0), Quaternion.identity); 
        }
    }
}

スポーン処理は非常にシンプルです。IPlayerJoinedインターフェースにはPlayerJoinedメソッドがあり、プレイヤーがセッションへ参加するたびに呼び出されます(メソッドが呼び出されるためには、スクリプトがNetworkRunnerと同じゲームオブジェクトに追加されている必要があります)。これはプレイヤー自身だけでなく、他の(異なる端末の)プレイヤーがセッションに参加した場合にも呼び出されるため、プレイヤー自身で呼び出された時のみプレイヤーオブジェクトをスポーンします。Runner.Spawnでスポーンしたオブジェクトは、自動的にその他全てのクライアントでもスポーン(レプリケーション)されます。

SimulationBehaviourは、現在のセッションのあらゆる情報を保持しているNetworkRunnerにアクセスするために使用されます。

PlayerSpawnerコンポーネントをPrototype Runnerに追加して、PlayerCharacterプレハブをPlayerPrefabにアタッチします。

これでプレイヤーをスポーンする準備が完了しました。ゲームを実行しStart Shared Clientを押して、共有モードでFusionを開始します。

the start menu

シーン上にはプレイヤーが表示されますが、まだ移動するなどの操作は一切何もできません。次の章では、プレイヤーの移動を実装することで、プレイヤーに命を吹き込みます。

player capsule in the scene

次は 共有モード入門 3 - 移動とカメラ

Back to top