Unity 網路通訊(一)Unity Network 初步
阿新 • • 發佈:2019-01-27
-
using UnityEngine;
-
using System.Collections;
-
public class server : MonoBehaviour {
-
int Port = 10000;
-
//OnGUI方法,所有GUI的繪製都需要在這個方法中實現
-
void OnGUI(){
-
//Network.peerType是端型別的狀態:
-
//即disconnected, connecting, server 或 client四種
-
switch(Network.peerType){
-
//禁止客戶端連線執行, 伺服器未初始化
-
case NetworkPeerType.Disconnected:
-
StartServer();
-
break;
-
//運行於伺服器端
-
case NetworkPeerType.Server:
-
OnServer();
-
break;
-
//運行於客戶端
-
case NetworkPeerType.Client:
-
break;
-
//正在嘗試連線到伺服器
-
case NetworkPeerType.Connecting:
-
break;
-
}
-
}
-
void StartServer(){
-
//當用戶點選按鈕的時候為true
-
if (GUILayout.Button("建立伺服器")) {
-
//初始化本機伺服器埠,第一個引數就是本機接收多少連線
-
NetworkConnectionError error = Network.InitializeServer(12,Port,false);
-
Debug.Log("錯誤日誌"+error);
-
}
-
}
-
void OnServer(){
-
GUILayout.Label("服務端已經執行,等待客戶端連線");
-
//Network.connections是所有連線的玩家, 陣列[]
-
//取客戶端連線數.
-
int length = Network.connections.Length;
-
//按陣列下標輸出每個客戶端的IP,Port
-
for (int i=0; i<length; i++)
-
{
-
GUILayout.Label("客戶端"+i);
-
GUILayout.Label("客戶端ip"+Network.connections[i].ipAddress);
-
GUILayout.Label("客戶端埠"+Network.connections[i].port);
-
}
-
//當用戶點選按鈕的時候為true
-
if (GUILayout.Button("斷開伺服器")){
-
Network.Disconnect();
-
}
-
}
-
/* 系統提供的方法,該方法只執行一次 */
-
// Use this for initialization
-
void Start () {
-
}
-
// Update is called once per frame
-
void Update () {
-
}
- }