Exemplo n.º 1
0
        public void SendServerSpawnSceneObject(long connectionId, LiteNetLibIdentity identity)
        {
            if (!IsServer)
            {
                return;
            }
            LiteNetLibPlayer player = null;

            if (!Players.TryGetValue(connectionId, out player) || !player.IsReady)
            {
                return;
            }
            ServerSpawnSceneObjectMessage message = new ServerSpawnSceneObjectMessage();

            message.objectId = identity.ObjectId;
            message.position = identity.transform.position;
            message.rotation = identity.transform.rotation;
            ServerSendPacket(connectionId, DeliveryMethod.ReliableOrdered, GameMsgTypes.ServerSpawnSceneObject, message, identity.WriteInitialSyncFields);
        }
Exemplo n.º 2
0
        protected virtual void HandleServerSpawnSceneObject(LiteNetLibMessageHandler messageHandler)
        {
            ServerSpawnSceneObjectMessage message = messageHandler.ReadMessage <ServerSpawnSceneObjectMessage>();

            if (!IsServer)
            {
                Assets.NetworkSpawnScene(message.objectId, message.position, message.rotation);
            }
            LiteNetLibIdentity identity;

            if (Assets.TryGetSpawnedObject(message.objectId, out identity))
            {
                // If it is not server, read its initial data
                if (!IsServer)
                {
                    identity.ReadInitialSyncFields(messageHandler.reader);
                }
                // If it is host, it may hidden so show it
                if (IsServer)
                {
                    identity.OnServerSubscribingAdded();
                }
            }
        }