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(); } }
public void SendServerDestroyObject(long connectionId, uint objectId, byte reasons) { if (!IsServer) { return; } LiteNetLibPlayer player = null; if (!Players.TryGetValue(connectionId, out player) || !player.IsReady) { return; } ServerDestroyObjectMessage message = new ServerDestroyObjectMessage(); message.objectId = objectId; message.reasons = reasons; ServerSendPacket(connectionId, DeliveryMethod.ReliableOrdered, GameMsgTypes.ServerDestroyObject, message); }