private static void OnObjectDestroy(NetworkMessage netMsg)
{
NetworkIdentity identity;
netMsg.ReadMessage<ObjectDestroyMessage>(s_ObjectDestroyMessage);
if (LogFilter.logDebug)
{
Debug.Log("ClientScene::OnObjDestroy netId:" + s_ObjectDestroyMessage.netId);
}
if (s_NetworkScene.GetNetworkIdentity(s_ObjectDestroyMessage.netId, out identity))
{
NetworkDetailStats.IncrementStat(NetworkDetailStats.NetworkDirection.Incoming, 1, GetStringForAssetId(identity.assetId), 1);
identity.OnNetworkDestroy();
if (!NetworkScene.InvokeUnSpawnHandler(identity.assetId, identity.gameObject))
{
if (identity.sceneId.IsEmpty())
{
UnityEngine.Object.Destroy(identity.gameObject);
}
else
{
identity.gameObject.SetActive(false);
s_SpawnableObjects[identity.sceneId] = identity;
}
}
s_NetworkScene.RemoveLocalObject(s_ObjectDestroyMessage.netId);
identity.Reset();
}
else if (LogFilter.logDebug)
{
Debug.LogWarning("Did not find target for destroy message for " + s_ObjectDestroyMessage.netId);
}
}