Skip to main content

Syllabus

The contents of these labs are made to teach and stress some learning points and for mere “practice”, e.g: getting used to Unity layout, terminologies, etc.

By no means we claim that they are the best practice, in fact some of the ways may be convoluted and they won’t be done exactly this way by experienced coder but we can’t teach the “best practices” right away because it relies on many prior knowledge.

Be respectful

Experienced programmers: keep in mind that you too were once a beginner. You made mistakes, you grow from it. You didn't get to be where you are right now instantly.

If you realise that some parts are troublesome or ineffective, then good for you. It means that you’re experienced, and from now on you can embark on the journey to customize it to a more fitting way: simpler, better, more efficient, whatever it is.

You can tell our teaching team your personal opinion, and constructive criticism is always welcome after class. We however expect a certain kind of mutual respect during the lab hours.

We do not give a trivial hand-holding step-by-step tutorial here. We do condense some steps. Remember that this is still part of your graded lab assignment, so you need to imply some parts based on standard programming knowledge as a CS student.

Week 1: Unity for Newborns

We start from standard introductory knowledge about using Unity:


TopicDetails
Installationmono, dotnet, configuring editor, enabling intellisense
Unity Basics (files)Layout arrangements, windows, managing project files
Unity Basics (scene)Adding and editing a scene, add GameObject & elements, create prefabs, use Camera, binding keys for input
Unity Basics (scripts)C# scripting basics, setting script execution order
Unity EnginePhysics Engine: Rigidbody2D, Collider2D
UI ElementsCanvas, Text, Button (Legacy), TextMeshPro
Unity LifecycleIntroduction, common callback functions: Update(), Start(), OnTriggerEnter(), among many others.
Unity EventsonClick() Button

Week 2: Unity for Babies

This week, we expand our horizon a little bit and instill more fun in our lab by adding enhanced feedback:


TopicDetails
AnimationCreate animator and animation clips, transition between animations, setup animation parameters, timing animations and state machine
Unity Basics (camera)Camera Movement
Unity EventsTrigger events from animation
Sound EffectsAdd sound effects
Unity Basics (files)Create and manage Prefabs

Week 3: Unity for Toddlers

We have a lot of state management to do at this stage. It's time to learn more advanced Input Management, Audio Management, and Design Patterns.


TopicDetails
UnityThe Input System
The Input System InputKeyboard, Mouse
The Input SystemInputActions, Actions, ActionMaps, Action Binding, Action Properties
The Input System WorkflowActionAsset, PlayerInput Component
UnityAudioMixer
Design PatternThe Observer Pattern
C#Delegates, Actions, and UnityEvent
Unity ScriptingAnimationEvent<T>Tool

Week 4: Unity for Children

This week we learn how to make multi-scene game and make important instances and values persist between scenes and gameplay.


TopicDetails
UnitySwitching Scenes
C#Enums, switch statements, interface and inheritance, static variables, properties and method overloading
C# AdvancedCoroutines, async-await
Design PatternSingletons
Design PatternDelegates, Actions, and Unity Events
Unity ScriptingScriptable Objects