using UnityEngine; using UnityEngine.SceneManagement; using Mirror; /* Documentation: https://mirror-networking.gitbook.io/docs/components/network-authenticators API Reference: https://mirror-networking.com/docs/api/Mirror.NetworkAuthenticator.html */ public class #SCRIPTNAME# : NetworkAuthenticator { #region Messages public struct AuthRequestMessage : NetworkMessage { } public struct AuthResponseMessage : NetworkMessage { } #endregion #region Server /// /// Called on server from StartServer to initialize the Authenticator /// Server message handlers should be registered in this method. /// public override void OnStartServer() { // register a handler for the authentication request we expect from client NetworkServer.RegisterHandler(OnAuthRequestMessage, false); } /// /// Called on server from OnServerAuthenticateInternal when a client needs to authenticate /// /// Connection to client. public override void OnServerAuthenticate(NetworkConnection conn) { } /// /// Called on server when the client's AuthRequestMessage arrives /// /// Connection to client. /// The message payload public void OnAuthRequestMessage(NetworkConnection conn, AuthRequestMessage msg) { AuthResponseMessage authResponseMessage = new AuthResponseMessage(); conn.Send(authResponseMessage); // Accept the successful authentication ServerAccept(conn); } #endregion #region Client /// /// Called on client from StartClient to initialize the Authenticator /// Client message handlers should be registered in this method. /// public override void OnStartClient() { // register a handler for the authentication response we expect from server NetworkClient.RegisterHandler(OnAuthResponseMessage, false); } /// /// Called on client from OnClientAuthenticateInternal when a client needs to authenticate /// public override void OnClientAuthenticate() { AuthRequestMessage authRequestMessage = new AuthRequestMessage(); NetworkClient.Send(authRequestMessage); } /// /// Called on client when the server's AuthResponseMessage arrives /// /// The message payload public void OnAuthResponseMessage(AuthResponseMessage msg) { // Authentication has been accepted ClientAccept(); } #endregion }