
Explore a course preview for mastering coroutines in Unity, outlining core topics and practical workflows to enhance asynchronous programming in Unity development.
Master coroutines in Unity by building a UI animation system driven by coroutines. Implement play, stop, and loop types, easing curves, callbacks, editor previews, and multi-animation synchronization.
Explore the Visual Studio extension Supercharger for Unity on Windows, a free non-commercial tool that enhances code readability by coloring and labeling methods across classes.
Learn how to implement and optimize Unity coroutines to run across frames, fade image alpha with a start routine, and replace update loops for reusable, readable code.
Explore how to control coroutines in Unity with yield instructions such as wait for seconds real time, fixed update, and end of frame. Wait until, wait while, async operation.
Discover how to start and stop Unity coroutines by caching the routine, stopping before re-running, and invoking start and stop methods from UI buttons to control a fill amount.
Learn to build a coroutine-driven animation system in Unity by creating a driver script, tracking elapsed time, normalizing to 0–1, and enabling run and stop controls.
Open the driver and implement forward and backward playback by updating elapsed time toward duration, tested via the prefab with green forward and yellow backward buttons.
Link elapsed time to a public progress variable in Unity and add a calculate progress method with time and duration, then test with the driver tester to ensure pause-resume works.
Implement repeat and ping pong looping in a Unity coroutines driver, using loop count, duration, and a repeat flag to drive progress and back-and-forth motion.
Implement driver callbacks in Unity by adding public Unity start and end events guarded to trigger once when progress changes. Visualize with a particle system during play mode.
Mastering coroutines in unity explains adding and testing wait time to a driver routine, with optional randomized waits using weight and weight max, via a calculate random time function.
Add autostart, pre-start, and post-reset features to the Unity driver routine, with public booleans and a progress method triggered on enable to auto-run UI updates.
Refactor the driver script by creating a driver settings class with nested loop, wait max, and event settings, expose them to the editor, and set the default duration to 1.
Separate controllers from the driver to create a modular Unity workflow. Introduce a controller transform with a position-rotation-scale enum and a universal set-values method.
Automate controller connection to the driver in unity by updating the controller list on validate, auto populating when controllers are added or removed, before gameplay.
Learn how a controller remaps a value to another using linear interpolation, with public from and to fields and a shared driver, tested on the driver tester in Unity.
Remap and control the axes of a transfer animation with a vector3 axis-based modifier, changing only the selected axis for position, rotation, or scale.
Add easing to Unity animations by using a public animation curve to map a 0-1 input, fix remapping, and test with multiple star objects.
Refactor controllers around a shared abstract class to centralize common control and transform logic, implement abstract methods for driver compatibility, and enable creating new controllers via set values.
Develop a Unity image controller in C# to change image fill amount and fade, inheriting an abstract controller and implementing set image field and set image fade methods.
Create a canvas group controller to adjust a parent alpha and affect all child objects in Unity, implementing set values and testing with a simple ping-pong animation.
Learn to build a controller editor preview in Unity, storing and restoring initial values, implementing abstract preview methods, and visualizing animation through a slider-driven preview in the editor.
implement a remote driver system to synchronize animations across multiple ui elements and prefabs using a shared dictionary, connecting controllers to remote drivers and applying offset-based timing.
Develop and test a driver list player in Unity to sequence multiple drivers, control playback with wait times, and choose between all-at-once or wait-for-previous execution.
Finish the list player class by coordinating a driver list and triggering particle system events. Ensure correct sequencing with yield waits, reset progress between objects, and enable button-driven replays.
Refactor the UI animation system and export a Unity package, enabling easy import into custom projects; add component menu attributes to driver and controller scripts for easy search.
Create animated UI menus in Unity using the UI animator, importing assets and prefabs, and building button animations, panels, and scene-start sequences with driver components and on-click events.
Animate the menu with up and down panels, button interactions, and end-of-animation events, then restart the scene via a scene manager script to ensure seamless background fade and transitions.
Develop a simple Unity clicker game by building a game manager, an income property with a delegate driven on income change, and a UI text updater.
Define earning goals in the game manager to drive animations, implement a winning condition when three targets are reached, and format income with suffixes (dollars, thousand, million, billion) for display.
Create and connect item data and item manager scripts for a Unity item prefab, wiring item counts, production timing, costs, profits, and UI elements like progress bars and images.
Create and wire an on click item prefab, connect the progress bar to a button event, and implement the item manager to increase profit via the game manager.
Create and configure item animations in Unity for purchasing events, including fading the black and white image to color, scaling and rotating the item, and revealing managers when affordable.
Implement item available logic to trigger the first item animation with a ref bool, driven by an item manager and item data, checking item count and availability.
Implement item purchase logic in Unity by wiring an item manager, item data, and a buy button to trigger shake and rotate animations, deduct income, and increment count when affordable.
Build a buyable manager system in Unity by scripting item manager logic, handling manager cost, income updates on change, and triggering progress bar and button animations for purchases.
Finish item prefabs by duplicating and renaming items, configuring production time, profits, costs, and sprites; implement shared animations, test in play mode, and ensure inventory color updates after purchases.
Create robot animations in Unity by building idle, ahead, mouth, cigar, and head objects with driver and controller transform components, then preview and duplicate for synchronized movements, including star appearances.
Create a cook progress manager in Unity to drive cook animations, manage star appearances and shakes, and update progress visuals as income increases toward goal thresholds.
Advance the cook progress manager in Unity by wiring variables and a robot animation update method with progress goals and triggers for head, cigar, gold tooth, and gold chain animations.
Create manual animation objects with driver components and controller transforms, add items and adjust timing and weights, then preview and assemble into a sequence for testing in the game manager.
Create a simple state machine where clicking the background instantiates a player prefab, moves to the nearest red star, and repeats until all stars are destroyed, then explodes at center.
Implement a basic state machine in a new player logic script to sort stars by distance, move to the nearest star, and eat it, then explode at the center.
Finish the state machine and fix errors by refining the nearest star logic, using go to nearest position, and orchestrating explosion effects with coroutines, yield returns, and wait for seconds.
Import the UI animator package and create rotation and scale animations, tune animation curves and remote driver settings, and edit offsets in the editor to vary motion without play mode.
Profile and diagnose performance using the Unity profiler, then optimize slow methods by slicing work with a coroutine, yielding periodically to keep frame rate smooth.
Install Unity from the official site, set up Unity Hub, choose version 20 21.1, select 2D or 3D templates, and create or add projects while managing modules and backups.
Explore the Unity editor, scene and game views, and learn to create and transform objects, apply materials and colliders, and wire UI buttons to spawn capsules.
The course begins with a basic explanation of coroutines and why they are so useful.
Then you'll learn the difference between normal c# methods, update method and coroutine.
Following on, we will start to build our UI animation system driven by coroutines.
Our UI Animation will include some advanced techniques like:
how to pause and resume the coroutine
how to check if coroutine is running
how to delay coroutine
how to get a callback from the coroutine
how to start multiple coroutines all at once
how to write custom yield instruction
Later when our system is finished we will export it as Unity package so we will be able to use it in our next projects.
Our first project where we will use our UI Animation system will be simple animated game Menu. Which will show us the flexibility of our system. The second biggest project will be a complete idle clicker game, full of interactive animations. The interesting fact will be that the game is created very effective without any update method.
In the end, we will learn how to create State machines with the help of coroutines and also one very cool way how to optimize slow methods.
Why learn from me?
I created this course to share my passion for making games and help others to simplify their work.
I am trying to find effective and fast methods to solve problems, so I hope you will find some of my systems and tips and tricks useful also for you.
What you’ll learn
What are coroutines and what they are good for
Create UI Animation System
Callbacks from coroutines
Trigger Actions When Property is changed
Program Simple Game Without the need of Using Update Method
Optimize slow methods with coroutines
Write custom yield instructions
Create simple state machines with coroutines
Are there any course requirements or prerequisites?
Mac or PC.
You will need to download and install Unity 19.1 or later
You should be familiar with C# and the Unity Game Development Engine