private static void DestroyObject(NetworkIdentity uv, bool destroyServerObject)
{
if (LogFilter.logDebug)
{
Debug.Log("DestroyObject instance:" + uv.netId);
}
if (objects.ContainsKey(uv.netId))
{
objects.Remove(uv.netId);
}
if (uv.clientAuthorityOwner != null)
{
uv.clientAuthorityOwner.RemoveOwnedObject(uv);
}
NetworkDetailStats.IncrementStat(NetworkDetailStats.NetworkDirection.Outgoing, 1, uv.assetId.ToString(), 1);
ObjectDestroyMessage msg = new ObjectDestroyMessage {
netId = uv.netId
};
SendToObservers(uv.gameObject, 1, msg);
uv.ClearObservers();
if (NetworkClient.active && instance.m_LocalClientActive)
{
uv.OnNetworkDestroy();
ClientScene.SetLocalObject(msg.netId, null);
}
if (destroyServerObject)
{
UnityEngine.Object.Destroy(uv.gameObject);
}
uv.Reset();
}