public void ItWillBeMarkedForDestruction()
        {
            GameObject go = new GameObject();

            UnityObject.Destroy(go);

            Assert.That(Application.markedForDestruction.Contains(go));
        }
        public void AllOfItsChildrenWillBeMarkedForDestruction()
        {
            TestHierarchy h = new TestHierarchy();

            UnityObject.Destroy(h.root);

            Assert.That(Application.markedForDestruction.Contains(h.child));
            Assert.That(Application.markedForDestruction.Contains(h.childOfChild));
        }
        public void AllItsComponentsWillBeMarkedForDestruction()
        {
            GameObject go = new GameObject();
            Transform  t  = go.transform;

            UnityObject.Destroy(go);

            Assert.That(Application.markedForDestruction.Contains(t));
        }
示例#4
0
        void Flush(UnityObject obj)
        {
#if UNITY_EDITOR
            if (Application.isPlaying)
                Destroy(obj);
            else
                DestroyImmediate(obj);
#else
            UnityObject.Destroy(obj);
#endif
        }
        public void ItWillBeRemovedFromExistanceWhenTheApplicationCleansUp()
        {
            GameObject go = new GameObject();

            Assert.That((bool)go, Is.True);

            UnityObject.Destroy(go);

            Application.CleanUp();

            Assert.That((bool)go, Is.False);
        }
示例#6
0
            public static void RemoveAllChildren(GameObject obj)
            {
                var children = new List <GameObject>();

                foreach (Transform child in obj.transform)
                {
                    children.Add(child.gameObject);
                }
                foreach (GameObject child in children)
                {
                    UnityObject.Destroy(child);
                }
            }
示例#7
0
        public static void Destroy(UnityObject obj)
        {
            if (obj != null)
            {
#if UNITY_EDITOR
                if (Application.isPlaying)
                {
                    UnityObject.Destroy(obj);
                }
                else
                {
                    UnityObject.DestroyImmediate(obj);
                }
#else
                UnityObject.Destroy(obj);
#endif
            }
        }
示例#8
0
            public static void Destroy(UnityObject o, float t = 0f)
            {
                if (Application.isPlaying)
                {
                    UnityObject.Destroy(o, t);
                }
#if UNITY_EDITOR && UNITY_EDITORVR
                else
                {
                    if (Mathf.Approximately(t, 0f))
                    {
                        UnityObject.DestroyImmediate(o);
                    }
                    else
                    {
                        VRView.StartCoroutine(DestroyInSeconds(o, t));
                    }
                }
#endif
            }