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")]//同步变量 所有的客户端同步内容 string chatContent; //SetContent方法里的参数就是chatContent int maxContentLenth = 2000;//内容长度 void Start () { //如果是本地玩家,添加给服务器 if(isLocalPlayer) InputChat.instance.finishInputEvent += AddContent; } //客户端调用服务器的方法 void AddContent(string content) { Cmd_UpdateContent(PlayerInfo.name + "说:" + content); } [Command]//服务器执行的方法(方法名字前必须是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] //客户端执行 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;//端口号 } public void StartHost() //创建聊天室按钮 { NetworkManager.singleton.StartHost(); } public void StartClient() //加入聊天室按钮 { NetworkManager.singleton.StartClient(); }}
新闻热点
疑难解答