public static short Connect ;

描述

用于传达已成功连接的内部网络系统消息。

请务必在客户端或服务器上使用 RegisterHandler。将 MsgType.Connect 作为参数插入以监听连接。

//Attach this script to your GameObject.
//Attach a NetworkManager component. To do this click Add Component, then go to Network>Network Manager.
//Create 2 Buttons (Create>UI>Button) and attach them to the fields in your GameObject’s Inspector by clicking and dragging the Buttons from your Hierarchy to the fields.

//This script allows you to start and stop a Server and Client by clicking buttons. It also detects when there has been a connection and calls a method when that happens.

using UnityEngine; using UnityEngine.UI; using UnityEngine.Networking;

public class MsgTypeConnectExample : MonoBehaviour { NetworkClient m_MyClient; NetworkManager m_NetworkManager; //Assign these in the Inspector window before testing public Button m_ClientButton, m_ServerButton;

bool m_ServerEnabled;

public void Start() { //Get the NetworkManager component m_NetworkManager = GetComponent<NetworkManager>(); m_MyClient = new NetworkClient(); //Detect a connection and call the OnConnected function m_MyClient.RegisterHandler(MsgType.Connect, OnConnected); m_ServerEnabled = false;

//Add a listener so the ConnectClient function will be called when you click the Button m_ClientButton.onClick.AddListener(ConnectClient); //Add a listener so the ToggleServer function will be called when you click the Button m_ServerButton.onClick.AddListener(ToggleServer); }

//This is the function that is called when Unity detects a connection public void OnConnected(NetworkMessage networkMessage) { Debug.Log("Connected"); }

//This is called when you press the Client Button (make sure to assign one in the Inspector) void ConnectClient() { m_MyClient.Connect("127.0.0.1", 7777); }

//This is called when you press the Server Button (make sure to assign one in the Inspector) void ToggleServer() { //Check that the server button has been clicked once if (NetworkServer.active == false) { m_NetworkManager.StartServer(); } //If the server is enabled already, stop it else { m_NetworkManager.StopServer(); } }

void Update() { //Check if the Server is active in your Application if (NetworkServer.active == false) { //Change the Text of your Server Button m_ServerButton.GetComponentInChildren<Text>().text = "Start Server"; } else m_ServerButton.GetComponentInChildren<Text>().text = "Stop Server"; } }