- MeshPath3D
- Projectile on curve 2D
- Android Internet Connection State
- Vector2 editor
- Threaded Resource Save-Load
A plugin for managing asynchronous tasks in Godot. Await multiple signals, frames or async calls with intuitive helpers: all(), any(), and some().
- use await or signals seamlessly
- built-in
progressanddonesignals - wait for all async tasks to finish with
Awaiter.all() - wait for any task to finish with
Awaiter.any() - wait for N tasks to finish with
Awaiter.some() - wait for N frames to pass via
Awaiter.process_frames/physics_frames()
- Godot 4.2 or higher
- Open the
AssetLibtab in Godot with your project open - Search for
Awaiterplugin and install the plugin by Mero - Open Project -> Project Settings -> Plugins Tab and enable the plugin
Awaiter - Done!
- usage via signals
# pass signals and async funcs
var task_manager: Awaiter._TaskManager = Awaiter.all([
signal1,
func1,
...
])
task_manager.done.connect(_on_done)
task_manager.progress.connect(_on_progress)- inline usage
# pass signals and async funcs
var results = await Awaiter.all([
signal1,
func1,
...
]).done- awaiting 5 physics frames
await Awaiter.physics_frames(5).doneall - waiting for all of the tasks to complete
Awaiter.all(tasks: Array[Signal | Callable]) -> _TaskManagerany - waiting for any of the tasks to complete
Awaiter.any(tasks: Array[Signal | Callable]) -> _TaskManagersome - waiting for <n> amount of the tasks to complete
Awaiter.some(tasks: Array[Signal | Callable], amount_to_complete: int) -> _TaskManagerprocess_frames - waiting for <n> process frames to pass
Awaiter.process_frames(target_frames_count: int) -> _FramesAwaiterphysics_frames - waiting for <n> physics frames to pass
Awaiter.physics_frames(target_frames_count: int) -> _FramesAwaiterdone(result: Array) - is emitted after completion (depending on used method)
progress(complete: int, total: int) - is emitted per complete task
