ここでは、プロトタイピング用のコンポーネントを含むシンプルなシーンのセットアップと、プレイヤーのプレハブの作成方法を説明します。この章で、各クライアントのプレイヤーオブジェクトがスポーンできるシーンを動作させる方法を学びます。
まず空のシーンから始めましょう。Unityのヒエラルキータブを右クリックし、Fusion > Scene > Setup Networking in Sceneを選択します。
Fusion > Scene > Setup Networking in Scene
これでシーンにPrototype RunnerとPrototype Network Startが追加されます。
Prototype Runner
Prototype Network Start
NetworkRunner
Network Events
次にシーンに床を追加しましょう。Unityのヒエラルキータブを右クリックし、3D Object > Planeを選択し、名前をFloorにして、位置を(0, 0, 0)にリセットします。
3D Object > Plane
Floor
(0, 0, 0)
これでシーンのセットアップは完了です。
次にプレイヤーオブジェクトを作成します。 ヒエラルキーで右クリックし、3D Object > Capsuleを選択し、名前をPlayerCharacterにします。
3D Object > Capsule
PlayerCharacter
上記にNetworkObjectコンポーネントを追加します。このコンポーネントによって、ゲームオブジェクトにはネットワークIDが付与され、全てのピアがそのオブジェクトを参照できるようになります。
NetworkObject
さらにCharacterControllerコンポーネントを追加します。これは後でプレイヤーキャラクターを移動するコードを記述するために使用されます。
CharacterController
最後にNetworkTransfomrコンポーネントを追加します。NetworkTransformによって、オブジェクトの位置が自動的に他のクライアントへ同期されます。
NetworkTransfomr
NetworkTransform
PlayerCharacterをProjectウインドウにドラッグしてプレハブを作成した後、オブジェクトをシーンから削除してください。これでプレイヤーキャラクターをスポーンする準備が完了しました。
Project
マルチプレイヤーゲームでは、プレイヤーごとにキャラクターをインスタンス化したいことも多いでしょう。シングルプレイヤーゲームとは異なり、インスタンス化は特別なRunner.Spawnメソッドで行われ、全員のプレハブのインスタンス化を処理します。
Runner.Spawn
プレイヤーキャラクターをスポーンする適切なタイミングは、クライアントがセッションに参加した時です。そのためにカスタムスクリプトが必要です。PlayerSpawnerスクリプトを作成して開き、以下のコードを追加してください。
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); } } }
スポーン処理は非常にシンプルです。SimulationBehaviourを継承するとNetworkRunnerへアクセス可能になり、そこには現在のセッションのすべての情報(ローカルプレイヤーのIDを含む)が保持されています。
SimulationBehaviour
IPlayerJoinedインターフェースにはPlayerJoinedメソッドがあり、そのスクリプトがNetworkRunnerと同じゲームオブジェクトにあるなら、プレイヤーがセッションへ参加するたびに呼び出されます。これはプレイヤー自身の時だけでなく、他の(異なる端末の)プレイヤーがセッションへ参加した時にも呼び出されます。
IPlayerJoined
PlayerJoined
Runner.Spawnでスポーンしたオブジェクトは、自動的にその他全てのクライアントでもスポーン(レプリケーション)するため、ローカルプレイヤーが参加してPlayerJoinedが呼び出された時のみスポーンを行ってください。
PlayerSpawnerコンポーネントをPrototype Runnerに追加して、PlayerCharacterプレハブをPlayerPrefabにアタッチします。
PlayerPrefab
これでプレイヤーをスポーンする準備が完了しました。ゲームを実行しStart Shared Clientを押して、共有モードでFusionを開始します。
Start Shared Client
シーン上にはプレイヤーが表示されますが、まだ移動するなどの操作は一切何もできません。次の章では、プレイヤーの移動を実装することで、プレイヤーに命を吹き込みます。
次は 共有モード入門 3 - 移動とカメラ
We use cookies and related technologies to enhance your experience, show you personalised content and analyze performance and traffic on our website. By clicking on the „Accept All“ button you consent to the use of non-functional cookies and the subsequent processing of personal data to optimize our website and services as described in more detail in our Privacy and Cookie Policy.
By clicking on the „Customize or Deny all“ button you can decide otherwise. Clicking on the „Customize“ button will take you to a page where you can configure the usage of non-functional cookies (and related technologies) or deny all of them. You can access these settings at any time and also subsequently deselect cookies at any time in the footer area of our website.
We use the following categories of cookies and related technologies to enhance your experience, show you personalized content, and analyze performance and traffic on our website. We respect your right to privacy and accordingly you can chose to not allow some types of cookies (and related technologies). Click on the different category sliders and change our default settings to manage your cookie settings.
For more information on the specific cookies/related technologies we use and on how we use these, please see section 15 E. of our Privacy and Cookie Policy.
Authentication cookies we use are required to run our services … Cookies are required: Privacy and Cookie Policy
These cookies collect anonymous data and allow us to optimize our website and user experience. These cookies are listed here: Privacy and Cookie Policy
Help us to understand how visitors interact with our services, enables us to analyze and improve our services (also through third party analytics).