Quick Screen Transition Pro


Six screen transitions with a preview you can scrub in the editor, and a scene load that never shows a frame of the wrong scene.


by Krykftn | Advanced Editor Tools & Systems


Price History +

Transition.To("Level2", profile); // cover, load, reveal

Transition.Play(profile, () => ResetTheBoard()); // cover, do it, reveal


Nothing to add to a scene. No renderer feature, no custom pass, no packages — the overlay is drawn from IMGUI, so it behaves the same in Built-in, URP and HDRP with no setup at all.


The part that is easy to get wrong is not the wipe. It is the moment in the middle: the screen has to be provably opaque before anything changes, and the reveal must not start until the new scene is genuinely ready. Transition.To holds allowSceneActivation back and waits there however long the load takes. That is why you never see a frame of the old scene, or of the new one arriving early.



SIX SHAPES


• FADE — the one that never looks wrong, and the one to use when the transition should not be noticed

• WIPE — a straight edge at any angle. Reads as moving somewhere rather than as stopping.

• IRIS — a circle closing to any point. Aim it at what matters and the last thing on screen is the thing you wanted remembered.

• DISSOLVE — noise eaten away by a rising threshold; the grain size changes the whole character

• BLOCKS — squares filling in, in a scrambled order. The retro one.

• BARS — alternate bars closing from opposite ends, like a blind



A PREVIEW YOU CAN SCRUB


• Drag a bar and sit on any moment of the transition, without pressing Play

• Drawn with the same material and the same timing functions the runtime uses, so the frame you tune is the frame that ships

• The phase bands show cover, hold and reveal as three widths — so the window your loading happens in is a thing you can see

• A preview that merely approximates the runtime is worse than none, because you tune against it and then have to tune again



IT ACTUALLY COVERS


• An iris closing into a corner of a 2.4:1 screen reaches 100%. So does a 45-degree wipe.

• Both are measured by the package's own checks, because "leaves a sliver of the old scene at the very end" is the classic bug in hand-rolled transitions

• A diagonal wipe has further to travel than a straight one, and an iris has to reach the far corner rather than the near edge. That is worked out, not guessed.



TIMING THAT MAKES SENSE


• Cover, hold and reveal are three separate durations — a quick swallow and a slow reveal reads as arriving somewhere, the other way round reads as leaving

• Four easing curves, each explained in the inspector

• Unscaled time by default, because a pause menu changing scene is exactly the case where Time.timeScale is zero



NO SETUP AT ALL


• No manager object, no renderer feature, no custom pass, no packages — not even TextMeshPro or uGUI

• The first call builds what it needs and hides it

• Imports into a bare Built-in project with zero console errors, and behaves the same in URP and HDRP

• Pure-C# timing and sweep maths, shared by the editor and the runtime, so the preview and the game cannot disagree

• A demo scene with a button per shape, built from Unity primitives — no models, no textures