|
@@ -4,14 +4,21 @@ using System.Collections.Generic;
|
|
|
using UnityEngine;
|
|
|
using Unity.Networking.Transport;
|
|
|
using KairoEngine.Core;
|
|
|
+using Sirenix.OdinInspector;
|
|
|
|
|
|
namespace KairoEngine.Multiplayer
|
|
|
{
|
|
|
- public static class NetMsgController
|
|
|
+ [HideMonoScript]
|
|
|
+ public class NetMsgController : MonoBehaviour
|
|
|
{
|
|
|
private static List<NetMsg> netMessageTypes = new List<NetMsg>();
|
|
|
|
|
|
- public static void GetNetMessageTypes()
|
|
|
+ private void Start()
|
|
|
+ {
|
|
|
+ GetNetMessageTypes();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void GetNetMessageTypes()
|
|
|
{
|
|
|
netMessageTypes = ReflectiveEnumerator.GetEnumerableOfType<NetMsg>()
|
|
|
.Where(x => x.code != 0)
|
|
@@ -19,7 +26,7 @@ namespace KairoEngine.Multiplayer
|
|
|
.ToList();
|
|
|
}
|
|
|
|
|
|
- public static NetMsg FindWithCode(uint code)
|
|
|
+ public NetMsg FindWithCode(uint code)
|
|
|
{
|
|
|
for (int i = 0; i < netMessageTypes.Count; i++)
|
|
|
{
|
|
@@ -28,26 +35,26 @@ namespace KairoEngine.Multiplayer
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- public static void ReceiveData(ref DataStreamReader stream, ServerBehaviour server, int clientId)
|
|
|
+ public void ReceiveData(ref DataStreamReader stream, ServerBehaviour server, int clientId)
|
|
|
{
|
|
|
uint code = stream.ReadByte();
|
|
|
NetMsg msg = FindWithCode(code).ReceiveMessage(server, ref stream, clientId);
|
|
|
msg.ReadMessage(server, clientId);
|
|
|
}
|
|
|
|
|
|
- public static void ReceiveData(ref DataStreamReader stream, ClientBehaviour client)
|
|
|
+ public void ReceiveData(ref DataStreamReader stream, ClientBehaviour client)
|
|
|
{
|
|
|
uint code = stream.ReadByte();
|
|
|
NetMsg msg = FindWithCode(code).ReceiveMessage(client, ref stream);
|
|
|
msg.ReadMessage(client);
|
|
|
}
|
|
|
|
|
|
- public static void SendData(uint code, NetMsg netMsg, ref DataStreamWriter writer, ServerBehaviour server, int clientId)
|
|
|
+ public void SendData(uint code, NetMsg netMsg, ref DataStreamWriter writer, ServerBehaviour server, int clientId)
|
|
|
{
|
|
|
FindWithCode(code).SendMessage(server, netMsg, ref writer, clientId);
|
|
|
}
|
|
|
|
|
|
- public static void SendData(uint code, NetMsg netMsg, ref DataStreamWriter writer, ClientBehaviour client)
|
|
|
+ public void SendData(uint code, NetMsg netMsg, ref DataStreamWriter writer, ClientBehaviour client)
|
|
|
{
|
|
|
FindWithCode(code).SendMessage(client, netMsg, ref writer);
|
|
|
}
|