using UnityEngine;using System.Collections;using ChatState;using UnityEngine.UI;public class InputChat : MonoBehaviour { static public InputChat instance; public InputField inputField; void Awake() { instance = this; } public event finishInputHandler finishInputEvent; public void OnFinishInput() { finishInputEvent(inputField.text); } }using UnityEngine;using System.Collections;using UnityEngine.UI;public class ShowChat : MonoBehaviour { static public ShowChat instance; public Text textShow; public string ChatContent { get { return textShow.text; } set { textShow.text = value; } } void Awake() { instance = this; }}using UnityEngine;using System.Collections;using UnityEngine.Networking;public class PlayerChat : NetworkBehaviour { [SyncVar(hook = "SetContent")]//同步變量 所有的客戶端同步內(nèi)容 string chatContent; //SetContent方法里的參數(shù)就是chatContent int maxContentLenth = 2000;//內(nèi)容長(zhǎng)度 void Start () { //如果是本地玩家,添加給服務(wù)器 if(isLocalPlayer) InputChat.instance.finishInputEvent += AddContent; } //客戶端調(diào)用服務(wù)器的方法 void AddContent(string content) { Cmd_UpdateContent(PlayerInfo.name + "說:" + content); } [Command]//服務(wù)器執(zhí)行的方法(方法名字前必須是Cmd開頭) void Cmd_UpdateContent(string content) { string str = ShowChat.instance.ChatContent; str +=content+"/n"; if(str.Length>maxContentLenth) { str = str.Substring(str.Length - maxContentLenth, maxContentLenth); } chatContent = str; } [Client] //客戶端執(zhí)行 void SetContent(string content) { ShowChat.instance.ChatContent = content; }}using UnityEngine;using System.Collections;namespace ChatState{ public delegate void finishInputHandler(string content);}using UnityEngine;using System.Collections;using UnityEngine.UI;public class PlayerInfo : MonoBehaviour { static public string name; public InputField inputField; void Start () { } public void SetName() { name = inputField.text; }}using UnityEngine;using System.Collections;using UnityEngine.Networking;public class ServerUI : MonoBehaviour { void Start () { NetworkManager.singleton.networkAddress = "localhost";//ip地址 NetworkManager.singleton.networkPort = 7777;//端口號(hào) } public void StartHost() //創(chuàng)建聊天室按鈕 { NetworkManager.singleton.StartHost(); } public void StartClient() //加入聊天室按鈕 { NetworkManager.singleton.StartClient(); }}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注