void detachChild(CCNode child, bool cleanup) { // IMPORTANT: // -1st do onExit // -2nd cleanup if (_isRunning) { child.onExitTransitionDidStart(); child.onExit(); } child.parent = null; _children.Remove(child); // If you don't do cleanup, the child's actions will not get removed and the // its scheduledSelectors_ dict will not get released! if (cleanup) { child.cleanup(); } else { child.gameObject.SetActive(false); } }
public virtual void onExit() { pauseSchedulerAndActions(); _isRunning = false; if (_children != null) { for (int i = _children.Count - 1; i >= 0; i--) { CCNode child = _children[i]; child.onExit(); } } }
public virtual void removeAllChildrenAndCleanup(bool cleanup = true) { if (_children != null) { for (int i = _children.Count - 1; i >= 0; i--) { CCNode c = _children [i]; if (_isRunning) { c.onExitTransitionDidStart(); c.onExit(); } if (cleanup) { c.cleanup(); } c.parent = null; } _children.Clear(); } }