Unity官方例子爲:Simple Multiplayer Game
1.新建場景,創建一個空實體NetworkManager,添加NetworkManager、NetworkManagerHUD組件。NetworkManager管理遊戲狀態、實體同步生成等,NetworkManagerHUD是界面輔助組成,測試時不用自己寫界面了。
2.創建一個實體Player(如膠囊體),添加NetworkIdentity(身份組件)、NetworkTransform(同步位移和旋轉)。NetworkIdentity選中Local Player Authority。
3.將Player拖入Assets,生成Player.prefab,然後將Player.prefab拖入NetworkManager的NetworkManager組件【Spawn Info】【Player prefab】。
4.在場景中刪除Player,保存場景。發佈並測試。運行兩個客戶端,一個爲LAN Host(H),一個爲LAN Client(C),發現可以連接了。但是Player還不能動。
5.創建C#腳本PlayerController.cs並附加到Play.prefab上。代碼如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
//注意繼承至NetworkBehaviour
public class PlayerController : NetworkBehaviour {
void Update()
{
//只操作屬於自己的Player,如果沒有這個判斷,其他的Player也會跟着動
if (!isLocalPlayer)
return;
var x = Input.GetAxis("Horizontal") * Time.deltaTime * 150.0f;
var z = Input.GetAxis("Vertical") * Time.deltaTime * 3.0f;
transform.Rotate(0, x, 0);
transform.Translate(0, 0, z);
}
}
6.發佈測試,多個客戶端之間Player可以同步移動了。