protected void SetNextScene() { bool runningIsTransition = m_pRunningScene != null && m_pRunningScene.IsTransition;// is CCTransitionScene; // If it is not a transition, call onExit/cleanup if (!m_pNextScene.IsTransition) { if (m_pRunningScene != null) { m_pRunningScene.OnExitTransitionDidStart(); m_pRunningScene.OnExit(); // issue #709. the root node (scene) should receive the cleanup message too // otherwise it might be leaked. if (m_bSendCleanupToScene) { m_pRunningScene.Cleanup(); GC.Collect(); } } } m_pRunningScene = m_pNextScene; m_pNextScene = null; if (!runningIsTransition && m_pRunningScene != null) { m_pRunningScene.OnEnter(); m_pRunningScene.OnEnterTransitionDidFinish(); } }
public override void OnExit() { base.OnExit(); m_pOutScene.OnExit(); // inScene should not receive the onExit callback // only the onEnterTransitionDidFinish m_pInScene.OnEnterTransitionDidFinish(); }
public void ResumeFromBackground() { Resume(); if (m_pRunningScene != null) { bool runningIsTransition = m_pRunningScene is CCTransitionScene; if (!runningIsTransition) { m_pRunningScene.OnEnter(); m_pRunningScene.OnEnterTransitionDidFinish(); } } }
public override void OnExit() { base.OnExit(); // enable events while transitions CCDirector.SharedDirector.TouchDispatcher.IsDispatchEvents = true; m_pOutScene.OnExit(); // m_pInScene should not receive the onEnter callback // only the onEnterTransitionDidFinish m_pInScene.OnEnterTransitionDidFinish(); }