Мой вопрос касается получения типа сообщения после сохранения индекса сообщения в PlayerPrefs в Unity.
Я использую систему сообщений в моей системе клиент / сервер, основанную на этом учебном наборе
Например, сообщение «CreateAccount»:
Сценарий NetOP содержит индекс
public static class NetOP
{
public const int None = 0;
public const int CreateAccount = 1;
public const int LoginRequest = 2;
}
Класс NetMsg управляет сообщениями
public abstract class NetMsg
{
public byte OP { set; get; } //OP = operation code, a single number to know what is this message
public NetMsg()
{
OP = NetOP.None;
}
}
Для этого сообщения есть класс:
[System.Serializable]
public class Net_CreateAccount : NetMsg
{
public Net_CreateAccount()
{
OP = NetOP.CreateAccount;
}
public string UserName { set; get; }
public string Password { set; get; }
public string Email { set; get; }
}
Когда клиент получает сообщение по сценарию Client.cs:
public void MessageReceived(NetMsg msg)
{
PlayerPrefs.SetInt("msg",msg.OP); //save the msg index in PlayerPrefs
print(msg.OP); //check the message index is correct
}
Пока все хорошо, клиенту нужно получить полученное сообщение, так как оно было отключено (по ошибке), поэтому в Client.cs
...case NetworkEventType.ConnectEvent:
isConnected = true;
Debug.Log("We have connected to the server ");
if (PlayerPrefs.GetInt("msg") > 0) //we have a msg in PlayerPref
{
//ISSUE HERE:
communicationManager.CheckMessageStatus(connectionId,PlayerPrefs.GetInt("msg"));
}
break;
....
communicationManager.CheckMessageStatus (int connectionID, NetMsg msg) - принимает int и NetMsg (не NetMsg. ОП, который является индексом). Я знаю, как найти индекс NetMsg, но я не знаю, как отследить NetMsg на основе его индекса.
Можно ли (из фрагментов скриптов, которые я выложил) отследить сообщение на основе индекса? Я все еще учу C#, поэтому, пожалуйста, помогите.