Example #1
0
        static private void _DetachChildrenAndDestroyImmediate(Transform transform)
        {
            int childCount = transform.childCount;

            Transform[] children = new Transform[childCount];

            var myTransform = transform; // cache for performance reasons

            int i;

            for (i = 0; i < childCount; i++)
            {
                children[i] = myTransform.GetChild(i);
            }
            myTransform.DetachChildren();

            for (i = 0; i < childCount; i++)
            {
                GameObject obj = children[i].gameObject;
                if (obj)
                {
                    ObjPoolController.DestroyImmediate(obj);
                }
            }
        }
Example #2
0
 void Awake()
 {
     if (Effect != null)
     {
         ObjPoolController.Destroy(Effect);
         Effect = null;
     }
     //if (Effect == null)
     //{
     //    GameObject obj = GameObject.Find(AssetBundle);
     //    if (obj != null)
     //    {
     //        Effect = ObjPoolController.Instantiate(obj);
     //        if (Effect != null)
     //        {
     //            Effect.transform.SetParent(transform);
     //            if (ActiveOnAwake)
     //            {
     //                Effect.transform.SetParent(transform);
     //                Effect.transform.localPosition = Position;
     //                Effect.transform.localEulerAngles = EulerAngles;
     //                Effect.transform.localScale = LocalScale;
     //                Effect.SetActive(true);
     //            }
     //            else
     //            {
     //                Effect.SetActive(false);
     //            }
     //        }
     //    }
     //}
     if (Character == null)
     {
         Character[] chs = GetComponentsInParent <Character>(true);
         if (chs != null && chs.Length > 0)
         {
             Character = chs[0];
         }
     }
     if (ActiveOnAwake)
     {
         PlayEffect();
     }
 }