コード例 #1
0
 private void OnWorldSync(MessageWorldSync message)
 {
     foreach (var item in message.netObjects)
     {
         OnMessInstantiate(item);
     }
 }
コード例 #2
0
    /// <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;
        }
    }
コード例 #3
0
        /// <summary>
        /// Отправка текущего состояния мира
        /// </summary>
        private void SendWorld(ClientConnection clientConnection)
        {
            NetGO[] netGOs = netObjects.Values.ToArray(); // берем все наши сетевые объекты
            if (netGOs.Length == 0)
            {
                return;                     //раз нет сетевых объектов то выходим
            }
            MessageWorldSync message = new MessageWorldSync();

            message.netObjects = new List <MessageInstantiate>();
            foreach (var item in netGOs)
            {
                MessageInstantiate instantiate = new MessageInstantiate();
                instantiate.name     = item.name;
                instantiate.netID    = item.netID;
                instantiate.owner    = item.owner;
                instantiate.position = item.position;
                instantiate.rotation = item.rotation;
                message.netObjects.Add(instantiate);
            }
            clientConnection.SendMessage((byte)CommandType.worldSync, message, GalaxyDeliveryType.reliable);
        }