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); } } }
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(); } }