Example #1
0
 private void OnGoMessage(MessageGO message)
 {
     if (netGOs.ContainsKey(message.netID))
     {
         netGOs[message.netID].CallOnMessageGo(message.command, message.data);
     }
 }
Example #2
0
    /// <summary>
    /// Отправка сообщения всем экземплярам этого объекта
    /// </summary>
    /// <param name="command">пользовательская команда</param>
    /// <param name="objData">объект</param>
    public void SendGoMessage(byte command, BaseMessage data)
    {
        MessageGO message = new MessageGO();

        message.command = command;
        message.netID   = this.netID;
        message.data    = data.Serialize();
        GalaxyApi.send.SendMessageToServer((byte)CommandType.goMessage, message, GalaxyCoreCommon.GalaxyDeliveryType.reliable);
    }
    /// <summary>
    /// В этот метод приходят все входящии сообщения (мы на них подписались)
    /// </summary>
    /// <param name="code"></param>
    /// <param name="data"></param>
    private void OnGalaxyIncommingMessage(byte code, byte[] data)
    {
        switch ((CommandType)code)
        {
        case CommandType.goInstantiate:
        {
            MessageInstantiate message = MessageInstantiate.Deserialize <MessageInstantiate>(data);
            OnMessInstantiate?.Invoke(message);
        }
        break;

        case CommandType.goTransform:
        {
            MessageTransform message = MessageTransform.Deserialize <MessageTransform>(data);
            OnMessTransform?.Invoke(message);
        }
        break;

        case CommandType.goDestroy:
        {
            MessageDestroyGO message = MessageDestroyGO.Deserialize <MessageDestroyGO>(data);
            OnMessDestroy?.Invoke(message);
        }
        break;

        case CommandType.worldSync:
        {
            MessageWorldSync message = MessageWorldSync.Deserialize <MessageWorldSync>(data);
            OnWorldSync?.Invoke(message);
        }
        break;

        case CommandType.goMessage:
        {
            MessageGO message = MessageGO.Deserialize <MessageGO>(data);
            OnGoMessage?.Invoke(message);
        }
        break;
        }
    }