unity3D 多人游戏 添加多个角色预制体
作一下简短的记录,连接局域网后生成不同的角色。
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class choosePlayer: NetworkManager{//注意是NetworkManager
public GameObject[] playerPrefabs;//可在inspectors里面添加预制体
public int count=0;
public class NetworkMessage:MessageBase{
public int count;
}
void OnGUI(){
if (GUI.Button (new Rect (10, 140, 100, 20), "F-15E")) {
count=0;
}
if (GUI.Button (new Rect (10, 170, 100, 20), "missile")) {
count=1;
}
}
// 重写添加预制体的函数
public override void OnServerAddPlayer(NetworkConnection conn,short playerControllerId,NetworkReader extraMessageReader){
NetworkMessage message = extraMessageReader.ReadMessage<NetworkMessage> ();
int playerCount = message.count;
GameObject playerPre = playerPrefabs [playerCount];
GameObject player = (GameObject)Instantiate (playerPre, playerPre.transform.position, Quaternion.identity);//实体化函数
NetworkServer.AddPlayerForConnection (conn, player, playerControllerId);//将玩家角色联网
}
public override void OnClientConnect(NetworkConnection conn){
NetworkMessage test = new NetworkMessage ();
test.count = count;
ClientScene.AddPlayer (conn, 0, test);//调用OnServerAddPlayer()函数。
}
}
需要使用的预制体,需要在spawn中完成注册