Video summary
Learn Unity Beginner/Intermediate 2026 (FREE COMPLETE Course - Unity Tutorial)
Main summary
Key takeaways
Course overview / positioning
- “Code Monkey” (Hugo) offers a FREE complete Unity beginner/intermediate course (2026) to build a full game from scratch using production-quality, clean code.
- The course explicitly aims to avoid common bad beginner practices.
- Learners can download project files, inspect the final game, and optionally play it on Steam.
- The focus is on C# architecture and maintainability, so students can later extend the project with more recipes, counters, and systems.
Main technologies & Unity features taught
Core Unity/C# concepts
- Unity basics + C# basics
- Game object and transform concepts
- Unity lifecycle methods like Start/Update
- Clean code & naming conventions
- Case sensitivity
- PascalCase/CamelCase/snake_case
- Avoiding magic numbers
- Avoiding overly public fields
- Using
[SerializeField]with private fields
- Production-grade project structure
- Organized scripts
- Refactoring practices to improve maintainability
Gameplay systems & mechanics (the game being built)
A cooking/interaction game (“Kitchen Chaos”) built from many modular systems:
-
Character controller
- Input handling
- Movement using
transform.position - Frame-rate independence via
Time.deltaTime - Rotation smoothing (interpolation concepts like Lerp/SLerp for smooth turning)
- Collision prevention using physics queries:
- Starts with Raycast
- Then shifts to more appropriate shape-based queries like
CapsuleCast
- Wall “hugging” behavior and diagonal movement handling for responsive controls
-
Interaction system
- Uses
Physics.Raycastwith an outRaycastHit - Uses a layer mask so the interaction ray only hits counters
- Interaction triggers are driven by the new Input System actions (not continuous polling)
- Uses
-
Counters & inheritance
- Counters built with prefabs / prefab variants
- A base counter class encapsulates shared logic
- Specialized counters override behavior via virtual/override interact methods
- Counter types include:
- Clear, Container, Cutting, Stove, Trash, Plates, Delivery
-
Scriptable Objects (data-driven design)
KitchenObject- Data-driven item types: prefab, icon, display name
CuttingRecipeandFryingRecipe- Transformation rules (input → output)
- Progress timers and cut counts
Recipe- Customer orders as ingredient lists
RecipeList- Collection of all available customer recipes
AudioClipRefs- Arrays of sound variants (chop, fail, success, footsteps, etc.)
-
Interfaces and extensibility
- Uses interface patterns like
IKitchenObjectParentso multiple object types (counters and player) can parent kitchen objects in a type-safe way - A generic progress UI uses an interface like
IHasProgress- Same UI script supports both cutting and stove progress
- Uses interface patterns like
-
Events / C# delegates
- Uses C# events (e.g.,
performed,onInteract, and custom events likeonSelectedCounterChanged) - Reduces reliance on continuous
Updatepolling for discrete actions
- Uses C# events (e.g.,
-
Singleton pattern
- Applied to systems intended to have one global instance:
- player instance, delivery manager, sound manager, camera/state managers, etc.
- Includes warnings about scene transitions and static event cleanup
- Demonstrates how to reset static listeners between loads
- Applied to systems intended to have one global instance:
Rendering / visuals
- URP template setup and post-processing:
- Tonemapping
- Saturation/contrast
- Bloom (including HDR/high dynamic range concerns)
- Vignette
- Antialiasing options (MSAA/FXAA discussion)
- SSAO (Screen Space Ambient Occlusion via a renderer feature)
- Cinemachine
- Virtual cameras and camera management
- Optional following camera demo
- Shader Graph
- Builds a simple custom moving “delivery arrow” shader using scrolling UV animation
- World UI (World Space Canvases)
- Progress bars above counters
- Cutting progress UI (with facing-camera logic)
- Stove warnings (visuals + icons)
- Plate ingredient icons and plate “full” visual toggles
- Delivery result popups
Sound
- Introduces AudioSource + AudioMixer (mixer may be optionally covered)
- A SoundManager:
- Uses
AudioSource.PlayClipAtPoint - Supports:
- Looping music via a music manager
- Sound effects triggered by events
- Looping stove sizzling based on stove state
- Footstep looping based on player movement rate
- Pickup/drop and trash events
- Uses
- Options menu:
- Volume control saved to PlayerPrefs
- Live volume updates persisted between sessions
Product/game feature highlights (final game demonstration)
- Main menu + loading scene
- Tutorial window appears on startup (game paused until tutorial progression)
- Rebindable controls (keyboard + gamepad)
- Game states
- Waiting → Countdown → Gameplay → Game Over
- Countdown includes animated number popup + sound
- Pause menu: resume + main menu + options integration
Kitchen gameplay loop:
- Pick up ingredients from counters
- Container counters spawn items
- Cutting counter slices ingredients after multiple alternate-interact inputs
- Stove counter
- Cooks then transitions to frying/burning using a state machine and timers
- Trash counter destroys unwanted items
- Plates counter
- Spawns plates over time
- Player picks up and places food onto plates
Plate logic:
- Plate accepts only certain ingredient types (e.g., slices, cooked meat)
- Prevents duplicates using patterns like
TryAddIngredient - Plate visual updates:
- Plate complete visual + ingredient icons
- Event-driven template spawning
Delivery counter:
- Validates player plate contents against waiting recipes
- Plays success/fail audio
- Shows world-space delivery success/fail popup with icon and message
Polish stage additions:
- Walls + black outside environment
- Player movement particles
- Tutorial window with dynamically shown key prompts
- Stove burn warning (flashing bar + warning sfx)
- Animated world-space delivery popups
Review / guide / tutorial emphasis extracted
- Course organized into chapters, including:
- Step-by-step setup (Unity version + URP + minimal project settings)
- Editor layout customization (Inspector/Hierarchy/Project/Console/Game/Scene)
- Visual Studio integration and readability improvements
- Ongoing refactoring passes (legacy → new input system, separation of logic/visuals, event-based interactions)
- Strong “how-to” patterns:
- Use refactoring + testing to preserve behavior while reorganizing code
- Use events/delegates for discrete input actions
- Use interfaces/inheritance carefully for extensibility
Main speakers / sources
- Hugo (“Code Monkey”) is the primary speaker/author.
- Demonstrated external systems:
- Unity, C#, URP, Cinemachine, Shader Graph, TextMesh Pro, and the Input System