Gonna move to server authority

This commit is contained in:
2022-01-31 17:27:38 +05:30
parent f3d21f4ec6
commit 7368968176
1354 changed files with 107808 additions and 80043 deletions

View File

@@ -1,51 +1,51 @@
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);
}
}
}
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);
}
}
}

View File

@@ -1,11 +1,11 @@
fileFormatVersion: 2
guid: d0cd72391a563461f88eb3ddf120efef
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: d0cd72391a563461f88eb3ddf120efef
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData: ''
assetBundleName: ''
assetBundleVariant: ''

View File

@@ -1,60 +1,60 @@
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
namespace Mirror.Examples.Chat
{
public class ChatWindow : MonoBehaviour
{
public InputField chatMessage;
public Text chatHistory;
public Scrollbar scrollbar;
public void Awake()
{
Player.OnMessage += OnPlayerMessage;
}
void OnPlayerMessage(Player player, string message)
{
string prettyMessage = player.isLocalPlayer ?
$"<color=red>{player.playerName}: </color> {message}" :
$"<color=blue>{player.playerName}: </color> {message}";
AppendMessage(prettyMessage);
Debug.Log(message);
}
// Called by UI element SendButton.OnClick
public void OnSend()
{
if (chatMessage.text.Trim() == "")
return;
// get our player
Player player = NetworkClient.connection.identity.GetComponent<Player>();
// send a message
player.CmdSend(chatMessage.text.Trim());
chatMessage.text = "";
}
internal void AppendMessage(string message)
{
StartCoroutine(AppendAndScroll(message));
}
IEnumerator AppendAndScroll(string message)
{
chatHistory.text += message + "\n";
// it takes 2 frames for the UI to update ?!?!
yield return null;
yield return null;
// slam the scrollbar down
scrollbar.value = 0;
}
}
}
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
namespace Mirror.Examples.Chat
{
public class ChatWindow : MonoBehaviour
{
public InputField chatMessage;
public Text chatHistory;
public Scrollbar scrollbar;
public void Awake()
{
Player.OnMessage += OnPlayerMessage;
}
void OnPlayerMessage(Player player, string message)
{
string prettyMessage = player.isLocalPlayer ?
$"<color=red>{player.playerName}: </color> {message}" :
$"<color=blue>{player.playerName}: </color> {message}";
AppendMessage(prettyMessage);
Debug.Log(message);
}
// Called by UI element SendButton.OnClick
public void OnSend()
{
if (chatMessage.text.Trim() == "")
return;
// get our player
Player player = NetworkClient.connection.identity.GetComponent<Player>();
// send a message
player.CmdSend(chatMessage.text.Trim());
chatMessage.text = "";
}
internal void AppendMessage(string message)
{
StartCoroutine(AppendAndScroll(message));
}
IEnumerator AppendAndScroll(string message)
{
chatHistory.text += message + "\n";
// it takes 2 frames for the UI to update ?!?!
yield return null;
yield return null;
// slam the scrollbar down
scrollbar.value = 0;
}
}
}

View File

@@ -1,11 +1,11 @@
fileFormatVersion: 2
guid: 2c102f62d739545269250f48327d4429
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 2c102f62d739545269250f48327d4429
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData: ''
assetBundleName: ''
assetBundleVariant: ''

View File

@@ -1,25 +1,25 @@
using System;
namespace Mirror.Examples.Chat
{
public class Player : NetworkBehaviour
{
[SyncVar]
public string playerName;
public static event Action<Player, string> OnMessage;
[Command]
public void CmdSend(string message)
{
if (message.Trim() != "")
RpcReceive(message.Trim());
}
[ClientRpc]
public void RpcReceive(string message)
{
OnMessage?.Invoke(this, message);
}
}
}
using System;
namespace Mirror.Examples.Chat
{
public class Player : NetworkBehaviour
{
[SyncVar]
public string playerName;
public static event Action<Player, string> OnMessage;
[Command]
public void CmdSend(string message)
{
if (message.Trim() != "")
RpcReceive(message.Trim());
}
[ClientRpc]
public void RpcReceive(string message)
{
OnMessage?.Invoke(this, message);
}
}
}

View File

@@ -1,11 +1,11 @@
fileFormatVersion: 2
guid: 3addc5ad220944ed6888319897606739
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 3addc5ad220944ed6888319897606739
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData: ''
assetBundleName: ''
assetBundleVariant: ''