Как получить сообщение по его номеру индекса? - PullRequest
0 голосов
/ 08 января 2020

Мой вопрос касается получения типа сообщения после сохранения индекса сообщения в 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#, поэтому, пожалуйста, помогите.

...