一、服务端:
1.创建服务端脚本MyServer.cs 继承自NetworkManager类
using Mirror;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class MyServer : NetworkManager
{[Header("自定义按钮")]public Button btnStartServer;public Button btnStopServer;public Button btnSendServerMsg;public Text textContent;// Start is called before the first frame updatepublic override void Start(){btnStartServer.onClick.AddListener(() =>{StartServer();});btnStopServer.onClick.AddListener(() =>{StopServer();});btnSendServerMsg.onClick.AddListener(() =>{MyCustomMessage m = new MyCustomMessage(){text = "server msg"};NetworkServer.SendToAll(m);});}public override void OnStartServer(){base.OnStartServer();NetworkServer.RegisterHandler<MyCustomMessage>(OnServerReceiveCustomMessage);Debug.Log("OnStartServer");textContent.text += "OnStartServer\r\n";}public override void OnStopServer(){Debug.Log("OnStopServer");textContent.text += "OnStopServer\r\n";}public override void OnServerConnect(NetworkConnectionToClient conn){Debug.Log("OnServerConnect");textContent.text += "OnServerConnect\r\n";}public override void OnServerDisconnect(NetworkConnectionToClient conn){Debug.Log("OnServerDisconnect");textContent.text += "OnServerDisconnect\r\n";}private void OnServerReceiveCustomMessage(NetworkConnectionToClient arg1, MyCustomMessage arg2){textContent.text = DateTime.Now.ToString("HH:mm:ss") +": "+ arg2.text + "\r\n";}
}
2.创建空物体,添加MyServer、KcpTransport组件。如果不需要创建Player,可以去掉勾选MyServer
3.创建UI界面,将按钮等赋值到MyServer组件上
二、服务端
1.创建客户端脚本MyClient.cs 继承自NetworkManager类
using Mirror;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class MyClient : NetworkManager
{[Header("自定义按钮")]public InputField inputIp;public Button btnConnectServer;public Button btnDisonnectServer;public Button btnSendClientMsg;public Text textContent;// Start is called before the first frame updatepublic override void Start(){btnConnectServer.onClick.AddListener(() =>{networkAddress = inputIp.text;StartClient(); });btnDisonnectServer.onClick.AddListener(() =>{StopClient();});btnSendClientMsg.onClick.AddListener(() =>{MyCustomMessage m = new MyCustomMessage(){text = "client msg"};NetworkClient.Send(m);});NetworkClient.RegisterHandler<MyCustomMessage>(OnClientReceiveCustomMessage);}public override void OnStartClient(){textContent.text += "OnStartClient\r\n";}public override void OnStopClient(){textContent.text += "OnStopClient\r\n";}public override void OnClientConnect(){textContent.text += "OnClientConnect\r\n";}/// <summary>Called on clients when disconnected from a server.</summary>public override void OnClientDisconnect(){textContent.text += "OnClientDisconnect\r\n";}private void OnClientReceiveCustomMessage(MyCustomMessage obj){textContent.text = DateTime.Now.ToString("HH:mm:ss") + ": " + obj.text + "\r\n";}
}
2.创建空物体,添加MyClient、KcpTransport组件。如果不需要创建Player,可以去掉勾选MyServer
3.创建UI界面,将按钮等赋值到MyServer组件上