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