protected virtual void HandleServerSetObjectOwner(LiteNetLibMessageHandler messageHandler) { ServerSetObjectOwner message = messageHandler.ReadMessage <ServerSetObjectOwner>(); if (!IsServer) { Assets.SetObjectOwner(message.objectId, message.connectionId); } }
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; }
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(); } }
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(); } }
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(); } } }
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)); } }
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(); } } }