zombie_mp/Assets/Mirror/Examples/Chat/Scripts/ChatNetworkManager.cs
Sewmina Dilshan 68183e5317 initial
2021-08-23 13:28:33 +05:30

52 lines
1.5 KiB
C#

using UnityEngine;
namespace Mirror.Examples.Chat
{
[AddComponentMenu("")]
public class ChatNetworkManager : NetworkManager
{
[Header("Chat GUI")]
public ChatWindow chatWindow;
// Set by UI element UsernameInput OnValueChanged
public string PlayerName { get; set; }
// Called by UI element NetworkAddressInput.OnValueChanged
public void SetHostname(string hostname)
{
networkAddress = hostname;
}
public struct CreatePlayerMessage : NetworkMessage
{
public string name;
}
public override void OnStartServer()
{
base.OnStartServer();
NetworkServer.RegisterHandler<CreatePlayerMessage>(OnCreatePlayer);
}
public override void OnClientConnect(NetworkConnection conn)
{
base.OnClientConnect(conn);
// tell the server to create a player with this name
conn.Send(new CreatePlayerMessage { name = PlayerName });
}
void OnCreatePlayer(NetworkConnection connection, CreatePlayerMessage createPlayerMessage)
{
// create a gameobject using the name supplied by client
GameObject playergo = Instantiate(playerPrefab);
playergo.GetComponent<Player>().playerName = createPlayerMessage.name;
// set it as the player
NetworkServer.AddPlayerForConnection(connection, playergo);
chatWindow.gameObject.SetActive(true);
}
}
}