重要: UNet は非推奨のソリューションになり、現在、新しい Multiplayer とネットワーキングソリューション (Netcode for GameObjects) が開発中です。詳細は、GameObjects Web サイトの Unity Netcode を参照してください。 |
ここでは、新しい Unity Multiplayer ネットワークシステムを使用して、シングルプレイヤーゲームをマルチプレイヤーゲームに変換する手順について説明します。 ここで説明するプロセスは、ゲームのために実際に使用する単純化された、より高レベルのプロセスを説明します。 必ずしも、この通りに動作するとは限りませんが、プロセスの基本的な方法を紹介します。
NetworkManager を使用する を参照してください。
playerPrefab
に作成したプレイヤープレハブを設定します。詳しくは プレイヤーオブジェクト を参照してください。
isLocalPlayer
に基づいて入力を更新しスクリプトを制御します。isLocalPlayer
を利用するためにカメラを修正します。例えば、このスクリプトではローカルプレイヤー用の入力のみを処理します。
using UnityEngine;
using UnityEngine.Networking;
public class Controls : NetworkBehaviour
{
void Update()
{
if (!isLocalPlayer)
{
// これがローカルプレイヤーでなければ、Update を強制終了
return;
}
// 動きのためのプレイヤー入力を処理
}
}
詳細はステートの同期を参照してください。
詳細は リモートアクション を参照してください。
エネミーのようなノンプレイヤーのプレハブを修正します。
OnStartServer()
function)NetworkServer.Spawn()
を呼び出します。