Exemple #1
0
        protected virtual void HandleServerSetObjectOwner(LiteNetLibMessageHandler messageHandler)
        {
            ServerSetObjectOwner message = messageHandler.ReadMessage <ServerSetObjectOwner>();

            if (!IsServer)
            {
                Assets.SetObjectOwner(message.objectId, message.connectionId);
            }
        }
Exemple #2
0
        protected virtual void HandleServerTime(LiteNetLibMessageHandler messageHandler)
        {
            // Server time updated at server, if this is host (client and server) then skip it.
            if (IsServer)
            {
                return;
            }
            var message = messageHandler.ReadMessage <ServerTimeMessage>();

            ServerTimeOffset = message.serverTime - Time.unscaledTime;
        }
Exemple #3
0
        protected virtual void HandleServerDestroyObject(LiteNetLibMessageHandler messageHandler)
        {
            ServerDestroyObjectMessage message = messageHandler.ReadMessage <ServerDestroyObjectMessage>();

            if (!IsServer)
            {
                Assets.NetworkDestroy(message.objectId, message.reasons);
            }
            // If this is host and reasons is removed from subscribing so hide it, don't destroy it
            LiteNetLibIdentity identity;

            if (IsServer && message.reasons == DestroyObjectReasons.RemovedFromSubscribing && Assets.TryGetSpawnedObject(message.objectId, out identity))
            {
                identity.OnServerSubscribingRemoved();
            }
        }
Exemple #4
0
        protected virtual void HandleServerSpawnSceneObject(LiteNetLibMessageHandler messageHandler)
        {
            var message = messageHandler.ReadMessage <ServerSpawnSceneObjectMessage>();

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

            // If it is host, it may hidden so show it
            if (IsServer && Assets.TryGetSpawnedObject(message.objectId, out identity))
            {
                identity.OnServerSubscribingAdded();
            }
        }
Exemple #5
0
        protected virtual void HandleServerSpawnObject(LiteNetLibMessageHandler messageHandler)
        {
            var message = messageHandler.ReadMessage <ServerSpawnObjectMessage>();

            if (!IsServer)
            {
                Assets.NetworkSpawn(message.hashAssetId, message.position, message.rotation, message.objectId, 0);
            }
            // Setup owner client
            LiteNetLibIdentity identity;

            if (Assets.TryGetSpawnedObject(message.objectId, out identity))
            {
                identity.SetOwnerClient(message.isOwner);
                // If it is host, it may hidden so show it
                if (IsServer)
                {
                    identity.OnServerSubscribingAdded();
                }
            }
        }
Exemple #6
0
        protected virtual void HandleServerSceneChange(LiteNetLibMessageHandler messageHandler)
        {
            // Server scene changes made from server, if this is host (client and server) then skip it.
            if (IsServer)
            {
                return;
            }
            // Scene name sent from server
            ServerSceneChangeMessage message = messageHandler.ReadMessage <ServerSceneChangeMessage>();
            string serverSceneName           = message.serverSceneName;

            if (string.IsNullOrEmpty(serverSceneName) || serverSceneName.Equals(SceneManager.GetActiveScene().name))
            {
                Assets.Initialize();
                OnClientOnlineSceneLoaded();
                SendClientReady();
            }
            else
            {
                // If scene is difference, load changing scene
                StartCoroutine(LoadSceneRoutine(serverSceneName, true));
            }
        }
Exemple #7
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();
                }
            }
        }