示例#1
0
        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);
            }
        }
示例#2
0
        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();
                }
            }
        }
示例#3
0
 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();
     }
 }