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); }
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(); } } }