Publisher
backwardspy
Transit
A simple Godot asset for smooth scene transitions
This plugin has been mirrored from the Godot Asset Library.
The plugin author is in no way affiliated with Gadget.
If you are the author of this plugin and would like this mirror removed, please contact support@gadgetgodot.com.

A simple Godot asset for smooth scene transitions.

Usage
Add Transit to your project via the AssetLib tab in Godot. I highly recommend deselecting everything but the transit folder when first installing Transit.

Once Transit is installed, add Transit.tscn to your project's AutoLoad list in the project settings.

Important: Make sure you add the scene file (ending in .tscn) to the AutoLoad list. Adding the GDScript file (ending in .gd) will not work.
Now you can call Transit.change_scene in your scripts to change scenes in much the same way you would with SceneTree.change_scene. For example:
func on_button_pressed():
Transit.change_scene("res://Game.tscn")
Documentation
Change Scene
change_scene(path: String, duration: Float = 0.2, delay: float = 0)
Fades out, calls get_tree().change_scene(path), then fades back in. Emits the scene_changed signal once the transition is completed.
Parameters:
path: The scene to change to after fading out.duration: How long in seconds the fade should last on each side of the transition. Defaults to 0.2s (200ms).delay: How long to wait before starting the transition. Defaults to 0s, i.e no delay.
Example:
# A simple fade transition to `Game.tscn`.
Transit.change_scene("res://Game.tscn")
# Then same as above, except each fade (out and in) takes half a second.
Transit.change_scene("res://Game.tscn", 0.5)
# The same as above, except now it waits for a full second before fading out.
Transit.change_scene("res://Game.tscn", 0.5, 1.0)
Set fade-to color
set_color(color: Color)
Sets the intermediate color to use when fading between scenes. The default is black. This function preserves the current alpha value, which means it's safe to change colours even while a fade is in progress.
Parameters:
color: The color to fade to. This is implemented as a ColorRect that exists on the highest canvas layer in the scene.
Example:
# Set fade color to white.
Transit.set_color(Color.white)
# This will now fade to white before changing to `Game.tscn`
Transit.change_scene("res://Game.tscn")
Implementation Details
Transit works by creating a ColorRect on canvas layer #128 (the highest.) This ColorRect defaults to black with 0 alpha, with mouse filtering set to MOUSE_FILTER_IGNORE. When change_scene is called, the following process happens:
- The
ColorRectmouse filtering is set toMOUSE_FILTER_STOPto prevent further UI interaction. - If
delayis larger than 0, the function yields for that amount of time. - An animation is played that fades the alpha value to 1 over the given time period.
SceneTree.change_sceneis invoked on the current tree, changing to the requested scene.- The
ColorRectmouse filtering is set back toMOUSE_FILTER_IGNOREto allow UI interactions. - The same fade animation as before is played in reverse to fade the
ColorRectalpha back to 0. - The
scene_changedsignal is emitted.