Esempio n. 1
0
        internal static void HideForConnection(NetworkIdentity uv, NetworkConnection conn)
        {
            ObjectDestroyMessage msg = new ObjectDestroyMessage();

            msg.netId = uv.netId;
            conn.Send((short)MsgType.ObjectHide, msg);
        }
Esempio n. 2
0
        static void DestroyObject(NetworkIdentity identity, bool destroyServerObject)
        {
            if (LogFilter.Debug)
            {
                Debug.Log("DestroyObject instance:" + identity.netId);
            }
            NetworkIdentity.spawned.Remove(identity.netId);

            identity.clientAuthorityOwner?.RemoveOwnedObject(identity);

            ObjectDestroyMessage msg = new ObjectDestroyMessage
            {
                netId = identity.netId
            };

            SendToObservers(identity, msg);

            identity.ClearObservers();
            if (NetworkClient.active && localClientActive)
            {
                identity.OnNetworkDestroy();
            }

            // when unspawning, dont destroy the server's object
            if (destroyServerObject)
            {
                UnityEngine.Object.Destroy(identity.gameObject);
            }
            identity.MarkForReset();
        }
Esempio n. 3
0
        void DestroyObject(NetworkIdentity identity, bool destroyServerObject)
        {
            if (LogFilter.Debug)
            {
                Debug.Log("DestroyObject instance:" + identity.NetId);
            }
            spawned.Remove(identity.NetId);

            identity.ConnectionToClient?.RemoveOwnedObject(identity);

            var msg = new ObjectDestroyMessage
            {
                netId = identity.NetId
            };

            SendToObservers(identity, msg);

            identity.ClearObservers();
            if (LocalClientActive)
            {
                identity.OnNetworkDestroy.Invoke();
            }

            // when unspawning, dont destroy the server's object
            if (destroyServerObject)
            {
                UnityEngine.Object.Destroy(identity.gameObject);
            }
            identity.MarkForReset();
        }
Esempio n. 4
0
        static void OnLocalClientObjectDestroy(NetworkMessage netMsg)
        {
            ObjectDestroyMessage msg = netMsg.ReadMessage<ObjectDestroyMessage>();
            if (LogFilter.Debug) { Debug.Log("ClientScene::OnLocalObjectObjDestroy netId:" + msg.netId); }

            NetworkIdentity.spawned.Remove(msg.netId);
        }
Esempio n. 5
0
        static void DestroyObject(NetworkIdentity uv, bool destroyServerObject)
        {
            if (LogFilter.Debug)
            {
                Debug.Log("DestroyObject instance:" + uv.netId);
            }
            if (objects.ContainsKey(uv.netId))
            {
                objects.Remove(uv.netId);
            }

            if (uv.clientAuthorityOwner != null)
            {
                uv.clientAuthorityOwner.RemoveOwnedObject(uv);
            }

            ObjectDestroyMessage msg = new ObjectDestroyMessage();

            msg.netId = uv.netId;
            SendToObservers(uv.gameObject, (short)MsgType.ObjectDestroy, msg);

            uv.ClearObservers();
            if (NetworkClient.active && s_LocalClientActive)
            {
                uv.OnNetworkDestroy();
                ClientScene.SetLocalObject(msg.netId, null);
            }

            // when unspawning, dont destroy the server's object
            if (destroyServerObject)
            {
                UnityEngine.Object.Destroy(uv.gameObject);
            }
            uv.MarkForReset();
        }
Esempio n. 6
0
        static void OnObjectDestroy(NetworkMessage netMsg)
        {
            ObjectDestroyMessage msg = netMsg.ReadMessage<ObjectDestroyMessage>();
            if (LogFilter.Debug) { Debug.Log("ClientScene::OnObjDestroy netId:" + msg.netId); }

            NetworkIdentity localObject;
            if (NetworkIdentity.spawned.TryGetValue(msg.netId, out localObject) && localObject != null)
            {
                localObject.OnNetworkDestroy();

                if (!InvokeUnSpawnHandler(localObject.assetId, localObject.gameObject))
                {
                    // default handling
                    if (localObject.sceneId == 0)
                    {
                        Object.Destroy(localObject.gameObject);
                    }
                    else
                    {
                        // scene object.. disable it in scene instead of destroying
                        localObject.gameObject.SetActive(false);
                        spawnableObjects[localObject.sceneId] = localObject;
                    }
                }
                NetworkIdentity.spawned.Remove(msg.netId);
                localObject.MarkForReset();
            }
            else
            {
                if (LogFilter.Debug) { Debug.LogWarning("Did not find target for destroy message for " + msg.netId); }
            }
        }
Esempio n. 7
0
        internal static void OnHostClientObjectDestroy(ObjectDestroyMessage msg)
        {
            if (LogFilter.Debug)
            {
                Debug.Log("ClientScene.OnLocalObjectObjDestroy netId:" + msg.netId);
            }

            NetworkIdentity.spawned.Remove(msg.netId);
        }
Esempio n. 8
0
        internal static void OnHostClientObjectDestroy(ObjectDestroyMessage msg)
        {
            if (logger.LogEnabled())
            {
                logger.Log("ClientScene.OnLocalObjectObjDestroy netId:" + msg.netId);
            }

            NetworkIdentity.spawned.Remove(msg.netId);
        }
Esempio n. 9
0
        internal void OnHostClientObjectDestroy(ObjectDestroyMessage msg)
        {
            if (LogFilter.Debug)
            {
                Debug.Log("ClientScene.OnLocalObjectObjDestroy netId:" + msg.netId);
            }

            Spawned.Remove(msg.netId);
        }
Esempio n. 10
0
        internal static void HideForConnection(NetworkIdentity identity, NetworkConnection conn)
        {
            ObjectDestroyMessage msg = new ObjectDestroyMessage
            {
                netId = identity.netId
            };

            conn.Send((short)MsgType.ObjectHide, msg);
        }
        internal void OnHostClientObjectDestroy(ObjectDestroyMessage msg)
        {
            if (logger.LogEnabled())
            {
                logger.Log("ClientScene.OnLocalObjectObjDestroy netId:" + msg.netId);
            }

            client.Spawned.Remove(msg.netId);
        }
Esempio n. 12
0
        static void OnLocalClientObjectHide(NetworkMessage netMsg)
        {
            ObjectDestroyMessage msg = netMsg.ReadMessage<ObjectDestroyMessage>();
            if (LogFilter.Debug) { Debug.Log("ClientScene::OnLocalObjectObjHide netId:" + msg.netId); }

            NetworkIdentity localObject;
            if (NetworkIdentity.spawned.TryGetValue(msg.netId, out localObject) && localObject != null)
            {
                localObject.OnSetLocalVisibility(false);
            }
        }
Esempio n. 13
0
        internal static void OnLocalClientObjectDestroy(NetworkConnection _, ObjectDestroyMessage msg)
        {
            if (LogFilter.Debug)
            {
                Debug.Log("ClientScene.OnLocalObjectObjDestroy netId:" + msg.netId);
            }
#if MIRROR_PROFILING
            NetworkProfiler.RecordMessage(NetworkDirection.Incoming, typeof(ObjectDestroyMessage), msg.netId.ToString(), 1);
#endif
            NetworkIdentity.spawned.Remove(msg.netId);
        }
Esempio n. 14
0
        static void OnLocalClientObjectDestroy(NetworkMessage netMsg)
        {
            ObjectDestroyMessage msg = new ObjectDestroyMessage();

            netMsg.ReadMessage(msg);
            if (LogFilter.logDebug)
            {
                Debug.Log("ClientScene::OnLocalObjectObjDestroy netId:" + msg.netId);
            }

            s_NetworkScene.RemoveLocalObject(msg.netId);
        }
Esempio n. 15
0
        static void OnLocalClientObjectHide(NetworkMessage netMsg)
        {
            ObjectDestroyMessage msg = new ObjectDestroyMessage();

            netMsg.ReadMessage(msg);
            if (LogFilter.logDebug)
            {
                Debug.Log("ClientScene::OnLocalObjectObjHide netId:" + msg.netId);
            }

            NetworkIdentity localObject;

            if (s_NetworkScene.GetNetworkIdentity(msg.netId, out localObject))
            {
                localObject.OnSetLocalVisibility(false);
            }
        }
Esempio n. 16
0
        static void OnObjectDestroy(NetworkMessage netMsg)
        {
            ObjectDestroyMessage msg = new ObjectDestroyMessage();

            netMsg.ReadMessage(msg);
            if (LogFilter.logDebug)
            {
                Debug.Log("ClientScene::OnObjDestroy netId:" + msg.netId);
            }

            NetworkIdentity localObject;

            if (s_NetworkScene.GetNetworkIdentity(msg.netId, out localObject))
            {
                localObject.OnNetworkDestroy();

                if (!NetworkScene.InvokeUnSpawnHandler(localObject.assetId, localObject.gameObject))
                {
                    // default handling
                    if (localObject.sceneId.IsEmpty())
                    {
                        Object.Destroy(localObject.gameObject);
                    }
                    else
                    {
                        // scene object.. disable it in scene instead of destroying
                        localObject.gameObject.SetActive(false);
                        s_SpawnableObjects[localObject.sceneId] = localObject;
                    }
                }
                s_NetworkScene.RemoveLocalObject(msg.netId);
                localObject.MarkForReset();
            }
            else
            {
                if (LogFilter.logDebug)
                {
                    Debug.LogWarning("Did not find target for destroy message for " + msg.netId);
                }
            }
        }
Esempio n. 17
0
 internal static void OnObjectDestroy(ObjectDestroyMessage msg)
 {
     DestroyObject(msg.netId);
 }
Esempio n. 18
0
 internal static void OnObjectDestroy(NetworkConnection _, ObjectDestroyMessage msg)
 {
     DestroyObject(msg.netId);
 }