public override IEnumerator onBeginTransition()
{
// create a single pixel transparent texture so we can do our squares out to the next scene
_overlayTexture = Graphics.createSingleColorTexture(1, 1, Color.Transparent);
// populate squares
yield return(Core.startCoroutine(tickEffectProgressProperty(_squaresEffect, squaresInDuration, easeType)));
// load up the new Scene
yield return(Core.startCoroutine(loadNextScene()));
// dispose of our previousSceneRender. We dont need it anymore.
previousSceneRender.Dispose();
previousSceneRender = null;
// delay
yield return(delayBeforeSquaresInDuration);
// unpopulate squares
yield return(Core.startCoroutine(tickEffectProgressProperty(_squaresEffect, squaresInDuration, EaseHelper.oppositeEaseType(easeType), true)));
transitionComplete();
// cleanup
_overlayTexture.Dispose();
Core.contentManager.unloadEffect(_squaresEffect.Name);
}