How to Learn Unity with This Handbook
How the two libraries fit together, how to choose a route through them, and how to study so that what you read turns into things you can build.
- Study time
- 2–3 hours (plus 30 minutes to write your study plan)
- Reading time
- 66 min read · 11,024 words
- Prerequisites
- None
- Courses merged
- Original chapter
- Your progress
- —
- Find your way around both libraries and pick the right page for any question you have
- Choose a study route that fits your goal and the hours you really have each week
- Run a study session built on recall, spacing and building, instead of re-reading
- Get yourself unstuck with a routine: read the error, reproduce it small, search, then ask
- Read Unity's Manual, Scripting API and package docs for the version you're using
- Spot tutorial code written for an older Unity and know what the Unity 6 version looks like
- Write a personal study plan and start a dev journal you'll actually keep
This chapter is about the handbook itself and about learning, not about Unity yet. Read it once now and come back to it whenever your studying stalls. It's short compared with the chapters that follow, but it will save you more time than any of them.
Most people who set out to "learn Unity" don't fail because Unity is too hard. They stop because the way they study doesn't build skill. They watch a tutorial, follow along, end up with a game that works, and a week later can't start a new project without the video. The material is fine; the method is the problem. So before the first Unity chapter, here is the method: how the handbook is put together, which route to take through it, and how to turn reading into building.
The big picture#
The handbook is two libraries that cover the same ground from two directions.
- TopicBased/ has 73 chapters, from this one to the capstone. Each chapter covers one subject (physics, UI, shaders, multiplayer) and merges what every relevant course teaches about it, removes the repetition, and fills the gaps none of them cover. The chapters are in learning order, and together they're the backbone: if you read only one library, read this one.
- CourseBased/ has 129 files, one for every course, book, channel or tutorial series in the source list. Each file follows that course's own arc (its projects, its order, its level), so you can "take" the course by reading it, with or without the videos.
The two are linked both ways. Every chapter ends with the course files that cover its subject, each with a line on that course's angle. Every course file links to the chapters that go deeper on what it teaches. You can start from either side and always find the other.
Both libraries are split into eight phases, P0 to P7. A phase is a stage of skill, and each one assumes the ones before it.
The middle phases aren't completely independent. Shaders (P5) use the maths from T06 · Game Maths: Vectors, Trigonometry, Matrices, Quaternions & Interpolation, and the mobile chapter (P6) assumes you know UI from P3. Each chapter lists its real prerequisites at the top, so you never have to guess.
How the handbook is organised#
Phases and what's in them#
| Phase | Focus | Chapters | Course files | You come out able to… |
|---|---|---|---|---|
| P0 | Orientation | 2 | 0 | study well, and work in a correctly set-up Unity 6 project under version control |
| P1 | Foundations: Editor, C#, maths, physics, 2D and 3D | 9 | 20 | build a small complete game, 2D or 3D, with a menu, sound and a build you can share |
| P2 | Architecture and professional C# | 8 | 11 | structure a project so it can grow: patterns, data, events, saving, tools and tests |
| P3 | Core systems and genres | 21 | 21 | build the systems games are made of (animation, UI, audio, AI, RPG systems, combat, procedural worlds, interaction and cameras) and the mechanics of the main genres |
| P4 | Game design, level design and art | 5 | 10 | design a game that's fun, lay out levels, and bring your own art in from Blender |
| P5 | Rendering, shaders and VFX | 13 | 50 | light a scene, write shaders in Shader Graph and HLSL, and make effects with particles and VFX Graph |
| P6 | Multiplayer, performance, platforms and shipping | 10 | 15 | make a networked game, profile and optimise, target mobile and XR, and release on a store |
| P7 | Career, marketing and capstone | 5 | 2 | plan, run, fund, market and ship a game of your own, and present your work for a job |
P5 has far more course files than any other phase because the source list has a whole list of 50 entries just for VFX and shaders. The chapter count there (13) is what matters for your study plan; most of those 50 files are second angles on the same few chapters.
Topic chapters#
Every chapter has the same shape, so after two or three you'll know where to look:
- Header card: the study time, the prerequisites, and what you'll be able to do afterwards.
- The big picture: the mental model, usually with a diagram. If you read nothing else, read this.
- Core sections, one per subtopic. Each explains the idea, shows a minimal example, then a realistic one, then the pitfalls, then any Unity 6 changes.
- Guided build: a small original project that uses everything in the chapter, step by step, with all the code.
- Going further: advanced techniques, performance, and how studios do it.
- Common mistakes & debugging: what goes wrong, why, and the fix.
- Exercises, graded from easy to challenge, with solutions folded away.
- Quiz: ten questions that score themselves.
- Cheat sheet: one screen of APIs, shortcuts and rules of thumb, for later.
- Courses that cover this, and a glossary of the terms the chapter introduced.
A chapter is long, typically 8,000 to 14,000 words plus code. Don't read it in one sitting. The study-session section below shows how to split it.
Course files#
A course file starts with a course card (where the course lives, its rating in the source list, its level and length) and a verdict: who it suits, what it does well, where it's weak, and how current it is. Then comes the syllabus map: the course's own modules, in its own order, summarised in my words. After that the file teaches each module in writing, with original code and an original project in the same genre as the course's. It ends with upgrades (the modern Unity 6 version, better architecture, and what the course leaves out), a capstone challenge, a quiz and a cheat sheet.
Not every entry in the source list is a video course, so some files have a slightly different shape:
| Entry type | What its file is | Example |
|---|---|---|
| Video course or Unity Learn pathway | A written version of the course, module by module, with an original project | C014 · Complete C# Unity 3D Game Development in Unity 6 |
| Book or Unity e-book | A chapter-by-chapter study guide: key ideas, worked Unity examples, exercises | C024 · Game Programming Patterns (Robert Nystrom) |
| YouTube channel or series | A curated syllabus: the series worth following, in learning order, each turned into a written lesson | C011 · Math for Game Devs (Freya Holmer) |
| Web tutorial series | A companion guide that re-teaches each tutorial's technique in Unity 6 terms | C029 · Catlike Coding: Basics, Procedural Meshes, Movement & Hex Map |
| Bundle or subscription | A map of the whole curriculum, with written lessons for the core track | C020 · Unity Game Development Mini-Degree (Zenva) |
| Community | How to give and get useful critique, with a self-review checklist | C112 · RealtimeVFX community |
IDs, links and "planned" labels#
Every page has a short ID: T00 to T72 for chapters, C001 to C129 for course files. IDs never change, so they're the quickest way to refer to a page in your notes ("see T08, the raycast section"). That's why the chapters added after the plan was made, T54 to T72, have the highest numbers but sit inside their phases in the reading order: T54, the second 2D chapter, comes after T38.
The handbook is written over many sessions, and you'll be studying while later phases are still being written. When a page links to one that doesn't exist yet, the link shows as a dotted label instead of a real link. Hover over it (or long-press on a phone) and the tooltip tells you which writing session will produce it. Like T53 · Capstone: Planning and Building Your Own Complete Game in this sentence. On the next build after that page is written, every dotted label pointing at it becomes a normal link.
★ Core picks#
31 of the 129 course files are marked ★ core. They're the strongest project-based route through each phase. The chapters already teach everything; the core course files add the practice of building a bigger project from start to finish, which chapters can only do in miniature. If your time is short, read the chapters of a phase and at least its ★ files. Use the rest as second opinions when something doesn't click, or when you want a genre the core files don't cover.
Anatomy of a page#
Every page is one self-contained HTML file. It needs no internet connection and no server, so you can copy one to a phone, email it, or print it to PDF and it still works. Here's what the parts do.
Header card, contents and progress#
The header card at the top of each page gives the study time (an honest estimate including exercises, not just reading), the reading time (worked out from the word count, at 200 words a minute for prose and 12 lines a minute for code), the prerequisites and the outcomes. Read the outcomes before you start and again when you finish: if you can't do one of them, that's the section to go back to.
The contents sit in a column beside the text on a wide screen. On a phone they're behind the Contents button in the top bar, and Esc closes them. The section you're reading is highlighted as you scroll.
At the end of each section is an I've learned this checkbox. Tick it when you could explain that section to someone else without looking, not when you've merely read it. The ticks fill the progress bar in the contents and in the header card, and the home page adds them up per phase.
Callouts#
Boxes in the margin of the text flag a particular kind of information. There are seven, and each always means the same thing:
| Label | What it tells you | What to do with it |
|---|---|---|
| Concept | A core idea, stated as briefly as it can be | Learn it. Most quiz questions come from these. |
| Why | The reason something works the way it does | Read it even when you're in a hurry. It's what makes the rule stick. |
| Unity 6 note | Something that changed: the old API or workflow and the current one | Use it to translate older tutorials and forum answers. |
| Pitfall | A mistake that's easy to make and costly to find | Remember the symptom, so you recognise it when it happens. |
| Pro tip | A faster or nicer way to work | Optional, but these add up. |
| Performance | Something that costs frames, memory or load time | Note it; it matters most in P6. |
| Note | Context, a side fact, or a limit of what's been verified | Read once. |
Code blocks and their badges#
Every code block has a caption with the file name, the language, and a Copy button. Some also carry a badge that tells you how far the code has been checked:
- Unity sandbox: the file is copied into the handbook's Unity project (
_sandbox/) by the build, so Unity's own compiler checks it at each phase review. These are complete files you can drop into a project. - .NET console: pure C# with no Unity in it. The build compiles it, runs it, and checks the output matches the block printed under it.
- legacy: an old API shown on purpose, always next to the modern version. Don't copy it into new code.
- No badge: a snippet, a terminal command or a config excerpt. Read it in context.
Some lines in a block may be highlighted. They're the lines the text around the block is talking about.
Exercises, quizzes and cheat sheets#
Exercises come in four levels: easy (do it to check you followed), medium (apply the idea in a new situation), hard (combine it with earlier chapters) and challenge (open-ended, often a small project). Solutions are folded. Some exercises also have a separate Hint fold, so you can get a nudge without seeing the answer.
The quiz at the end of each page scores itself. Pick an answer and it tells you right away whether you're right and why. Reset quiz clears it so you can take it again in a week (and you should; see spacing below).
The cheat sheet is for later. It's no use on first reading, but very useful a month later when you remember that a thing exists and not what it's called.
The home page#
The home page (Handbook home) lists both libraries side by side. You can filter by library, phase, type and ★ core, and the search box looks through the full text of every written page, not just the titles. Press / anywhere on the home page to jump to search. The progress panel shows how many sections you've ticked in each phase, and has the export, import and clear buttons for your progress.
How a skill like Unity is actually learned#
Unity is a skill, not a body of facts. Knowing that Rigidbody exists is easy. Being able to sit down with an empty project and make a ball roll the way you want, then find out why it tunnels through walls at high speed, is the skill. Cognitive science has studied how skills and knowledge stick for over a century, and a few findings are solid enough to build a study method on.
Watching and re-reading feel like learning, but aren't#
When you follow a tutorial, everything makes sense. The instructor's code compiles, the next step is obvious, and you feel you're learning fast. That feeling is the problem. Recognising something when you see it is much easier than producing it from nothing, and the brain mistakes the first for the second. Researchers call this an illusion of competence: the material feels familiar, so you assume you know it.
A large review of study techniques by Dunlosky and colleagues (2013) rated re-reading and highlighting as having low usefulness, despite being what most students do. Following a video step by step is the coding equivalent of re-reading: you're recognising, not producing. The techniques that review rated highest were practice testing and spreading practice out over time.
Retrieval practice: recall before you re-read#
Pulling something out of memory strengthens it far more than putting it in again. In a well-known study by Roediger and Karpicke (2006), students who read a text once and then tested themselves on it remembered much more a week later than students who spent the same time re-reading it, even though the re-readers felt more confident. This is the testing effect, and it has been replicated many times since.
For you, this means:
- Before re-reading a section, close it and try to write down its main points, or sketch its diagram from memory. Then check.
- Take the quiz before reading a chapter as well as after. Getting questions wrong before you've learned the material is not wasted effort: it primes you for the answers.
- When an exercise says "write a script that…", write it without scrolling back up. Only look when you're truly stuck, and then look for the one thing you need, not the whole answer.
Spacing: the same hours, spread out#
Ten hours spread over two weeks beats ten hours in one weekend, by a wide margin, for anything you want to remember a month later. This spacing effect is one of the oldest results in psychology, going back to Ebbinghaus in the 1880s, and a large meta-analysis by Cepeda and colleagues (2006) confirmed it across hundreds of studies. The best gap grows with how long you want to remember: revisiting after a day, then a few days, then a couple of weeks works well.
In practice: the day after you finish a chapter, retake its quiz. A few days later, rebuild the smallest example from the chapter without looking. Two weeks later, read its cheat sheet and see what you've forgotten. Each review takes ten or fifteen minutes. The study plan you'll write in the guided build schedules them for you.
Interleaving: mix things up once you know the basics#
When you practise one kind of problem over and over (ten raycast exercises in a row), you get good at that block of exercises, but you never practise the hard part: working out which tool a problem needs. Mixing different kinds of problem, called interleaving, feels slower and harder, but it leads to better results on tests that mix problems, which is what real projects are.
The handbook does some of this for you: the hard and challenge exercises deliberately pull in earlier chapters. You can do more by mixing your review: when you revisit old chapters, pick two or three at random instead of going in order.
Worked examples first, then fade them out#
Beginners learn faster from studying a worked solution than from solving the same problem cold. This worked-example effect comes from John Sweller's work on cognitive load: a novice solving a problem from scratch spends all their attention searching for a way forward and has none left to notice the pattern. But the effect reverses as you get better. Once you know the basics, worked examples hold you back and solving problems yourself teaches more. This reversal is called the expertise reversal effect.
That's why chapters go from fully worked examples (the minimal and realistic examples in each core section), to a guided build where you type each step, to exercises where you write the code, to challenges with no code at all. And it's why tutorials are a fine way to start a subject and a poor way to keep going. A tutorial is a worked example that never fades.
Practise at the edge of what you can do#
Building the fifth platformer that's like your first four feels productive, but you're practising what you already know. Skill grows fastest when the task is just beyond what you can do comfortably, you get quick feedback on what went wrong, and you try again. Anders Ericsson called this deliberate practice. You don't need a coach for it. You need tasks that are slightly too hard, and a way of finding out how you did: the compiler, the Console, the Profiler, a playtester, the solution to the exercise.
Small steps, and one new thing at a time#
Working memory holds only a few new things at once. A beginner's first Unity session asks it to hold the Editor's windows, C# syntax, the idea of components, and vector maths all together, which is why it feels overwhelming. That doesn't mean you're bad at this. It means too many new things arrived at once.
Two habits help. First, change one thing at a time: add one feature, press Play, check it works, then add the next. When something breaks, you know exactly what caused it. Second, move things out of your head: keep the cheat sheet open, write notes, and let the IDE complete names for you. Memory you don't spend on remembering an API name is memory you can spend on the problem.
Choose your route#
You don't have to read all 202 pages, and almost nobody should. Pick a route by what you want to be able to do, then adjust it as you learn what you enjoy. Every route starts with P0 and the parts of P1 it needs, because nothing else works without them.
| Your goal | Topic chapters, in order | ★ Course files to build alongside |
|---|---|---|
| A · Complete beginner → first finished game | T00–T10 (all of P1), then T11, T13, T14, T16, T18, then T20, T21, the genre chapter for your game (T63–T70), T28, T29, T50, T53 | C001 · Unity Essentials pathway, C009 · Junior Programmer pathway, then C012 · Complete C# Unity 2D Game Development (2D) or C014 · Complete C# Unity 3D Game Development in Unity 6 (3D), then C019 · Learn Unity Beginner/Intermediate: Kitchen Chaos (Code Monkey) |
| B · Programmer, new to games | T01, T02, then test out of T03–T04, then T05–T10, all of P2, then P3 by genre, T45, T46 | C019 · Learn Unity Beginner/Intermediate: Kitchen Chaos (Code Monkey), C022 · Level up your code with game programming patterns (Unity e-book), C024 · Game Programming Patterns (Robert Nystrom), C042 · Unity Turn-Based Strategy |
| C · Artist → technical artist / VFX | T01, T02, T03 (lighter), T05, T06, then T09 or T08, then T33–T43, T54 and T57 (all of P5), T30–T32 | C032 · Creative Core pathway, C066 · Shaders for Game Devs (Freya Holmer), C068 · Shader Graph Basics (Ben Cloward), C096 · Visual Effects for Games in Unity (Gabriel Aguiar), C100 · VFX Graph Fundamentals |
| D · Game designer | T01–T03, T05, T07, T10, then T28, T29, T13, T15, T20, T22, T61, T62, then T71, T51 | C053 · Game Design and Development with Unity (Michigan State), C054 · Game Maker's Toolkit, C057 · Introduction to game level design (Unity e-book) |
| E · Indie or mobile developer who wants to ship | Route A, then T71, T45, T47, T48, T60, T50, T72, T52 | Route A's files, then C117 · Ultimate guide to profiling Unity games (Unity 6 e-book), C120 · Unity Mobile Game Development (Mario Korov), C129 · How To Market A Game (Chris Zukowski) |
| F · Multiplayer | Route A or B up to the end of P2, then T44, T58, T45, T15, T22 | C019 · Learn Unity Beginner/Intermediate: Kitchen Chaos (Code Monkey) then C113 · Kitchen Chaos Multiplayer (Code Monkey) |
A route isn't a cage. If you're on route C and a combat game catches your interest, read T25 · Combat & Game Feel: Hitboxes, Feedback, Juice & Camera Work. The prerequisites at the top of each chapter will tell you if you've skipped something it needs.
Testing out of a chapter#
If you already know a subject (you've written C# for years, say), you don't need to read its chapter from the top. Instead:
- Take the chapter's quiz cold. If you score 8 or more out of 10, go on to step 2. Below that, read the chapter.
- Do its two hardest exercises without looking at the text. If both work, read only the big picture, the Unity 6 notes and the common mistakes, then move on.
- If either exercise beats you, read the sections it needed. That's usually a small part of the chapter.
How long it takes#
Honest numbers help you plan, and they stop you thinking you're slow when you're normal. These are estimates, worked out from the length of the material and the time the exercises and builds usually take. Your own pace will vary.
| Stage | Rough study time | At 5 h/week | At 10 h/week | At 20 h/week |
|---|---|---|---|---|
| P0 (this chapter and setup) | 6–10 h | 2 weeks | 1 week | 2–3 days |
| P1 chapters only | 60–90 h | 3–4 months | 6–9 weeks | 3–5 weeks |
| P1 chapters + two ★ course projects | 120–160 h | 6–8 months | 3–4 months | 6–8 weeks |
| Route A, to a finished first game | 250–350 h | about a year | 6–8 months | 3–4 months |
| All 73 chapters | 470–670 h | about 2–2½ years | 11–15 months | 6–8 months |
Five steady hours every week will take you further than twenty hours one week and none for the next three. Spacing works in your favour when the hours are spread out.
A study session that works#
Here's a 90-minute session built on the ideas above. Shorten each block in proportion if you have less time, but keep all of them. The first and last blocks are the ones people drop, and they're the ones that make the middle stick.
- Recall (10 min). Before opening anything, write down from memory what you covered last session: the main ideas, an API or two, the thing that went wrong. Then glance at your journal or the page to check. If it's a review day, this block is the quiz or cheat sheet of an older chapter instead.
- Read and type (35 min). Read one or two core sections. Type every code example yourself, in the sandbox or a scratch project, and run it. Don't paste.
- Break, change, build (30 min). Break the example on purpose and read the error. Change one thing and predict what will happen before you press Play. Then do the section's exercises.
- Quiz and journal (10 min). Take any quiz questions on what you covered, and write three or four lines in your journal: what you learned, what confused you, what you want to try.
- Plan the next session (5 min). Write the first thing you'll do next time. Starting is the hardest part of any session, so make it easy for yourself.
Type the code, don't paste it#
Pasting is faster, and for a two-hundred-line file you've already understood, it's fine. While you're learning, though, typing does three things pasting can't. It makes you read every character, so you notice the parts you'd skim. It produces typos, and fixing them is practice at reading errors. And it trains your fingers in the shape of the language, so [SerializeField] float speed = 5f; eventually comes out without thought.
Break it on purpose#
Errors are information, and the best time to meet one is when you know exactly what caused it. After an example works, try:
- deleting a semicolon, a brace or a
usingline, and reading the compiler error; - leaving a field unassigned in the Inspector, and reading the runtime error;
- renaming a method Unity calls (
Updatetoupdate), and noticing that nothing happens, with no error at all; - setting a value to zero, a negative number or something huge, and watching what the game does.
Each of these is an error you'll meet for real later, in a project where you don't know the cause. Meeting it first in a controlled setting turns a frightening hour into a two-minute fix.
Keep a dev journal#
A journal is a plain text file (or a notebook) with a short dated entry after each session. It costs five minutes and does three jobs. It's your recall prompt for the start of the next session. It's a record of what you got stuck on and how you got out, which you'll want again. And months later, it shows you how far you've come, which matters on the days you feel you're getting nowhere. The guided build below gives you a template.
Getting unstuck#
You'll get stuck many times. Everyone does, at every level: professionals just have a faster routine for getting out. Here's a routine that works, in order. Most problems are solved by step 2.
1 · Read the whole error#
Unity's Console tells you a surprising amount, if you read all of it. A compile error looks like this:
Assets/Scripts/Coin.cs(14,13): error CS0103: The name 'scroe' does not exist in the current contextThat one line gives you the file (Coin.cs), the line and column (14,13), a code you can search for (CS0103), and the message. Here, a variable name is misspelt. Double-click the error in the Console and your IDE opens at that exact spot.
A runtime error, one that happens while the game runs, adds a stack trace: the chain of method calls that led to it, most recent first.
NullReferenceException: Object reference not set to an instance of an object
Coin.OnTriggerEnter (UnityEngine.Collider other) (at Assets/Scripts/Coin.cs:18)Read it as: "On line 18 of Coin.cs, inside OnTriggerEnter, the code used something that was null." Now look at line 18 and ask which reference on it could be null:
using UnityEngine;
public class Coin : MonoBehaviour
{
[SerializeField] int value = 1;
[SerializeField] ScoreBoard scoreBoard; // forgot to drag it in, in the Inspector
int score;
void Start()
{
score = 0;
}
void OnTriggerEnter(Collider other)
{
Destroy(gameObject);
scoreBoard.Add(value); // scoreBoard is null here
}
}The answer is scoreBoard, which was never assigned in the Inspector. Almost every NullReferenceException in a beginner project is one of three things: a field not assigned in the Inspector, a GetComponent that found nothing, or using something before the method that sets it has run. T05 · Scripting in Unity: Lifecycle, Serialization, Coroutines & Awaitable covers all three.
2 · Give it twenty minutes, then change approach#
Struggling with a problem is how you learn, up to a point. After that you're just tired. A good rule is: twenty focused minutes on your own, trying things and reading the error, then move to the next step. If you've been stuck for an hour on the same thing, something in your approach has to change, not just your effort.
During those twenty minutes, say the problem out loud or write it down: what you expected, what happened instead, and what you've ruled out. Programmers call this rubber-duck debugging, after the idea of explaining your code line by line to a rubber duck on your desk. It works surprisingly often, because putting the problem into words forces you to notice the step you'd been assuming.
3 · Shrink it to a minimal reproduction#
If the bug is buried in a big scene, make a new empty scene with only the objects and the script needed to show it. Then remove things one at a time until removing anything more makes the bug disappear. What's left is a minimal reproduction. Very often, building it shows you the cause. If it doesn't, you now have exactly what you need to ask someone else.
4 · Search well#
- Search the exact error text, in quotes, with "Unity" in front. Take out your own names (
scroe,Coin.cs) first. - Check the date and version of every answer you find. A 2016 answer may use an API that's gone (see the next section).
- Search the Scripting API for the class you're using and read the whole page, especially the description and the example. Many "bugs" are documented behaviour.
5 · Ask a question people can answer#
When you ask on a forum or a Discord server, the speed and quality of the help you get depends almost entirely on the question. A good question includes:
- What you're trying to do, in one sentence ("make the player jump only when grounded").
- What you expected and what happened instead ("expected one jump; the player jumps again in mid-air").
- The exact error text, copied, not retyped or summarised.
- The smallest code that shows the problem, as text in a code block, not a screenshot of code.
- Your Unity version and any relevant package versions.
- What you've already tried, so nobody suggests it again.
Unity's official forum is Unity Discussions. Many of the courses in CourseBased/ have their own community servers too; the course files say where.
Using AI assistants without losing the learning#
AI coding assistants are very good at producing Unity code, which is exactly why they can stop you from learning it. If the assistant writes the script, you've practised asking, not scripting. But used well, they're an excellent tutor. Some rules that keep the learning on your side:
- Ask for explanations, not answers. "Why does my raycast never hit anything?" teaches you more than "write me a raycast". Better still: "Don't give me code. Give me three possible causes and how to check each one."
- Say your version. Start with "I'm using Unity 6.3 LTS with URP and the Input System package". Assistants were trained on years of old tutorials and often produce pre-Unity 6 code (see the next section).
- Check every API name against the Scripting API. Assistants sometimes invent methods that sound right but don't exist.
- Type what you keep, rather than pasting it, and make sure you can explain every line.
- Use it to quiz you. "Ask me five questions about Rigidbody interpolation, one at a time, and tell me what I got wrong" is retrieval practice on demand.
Reading Unity's own documentation#
The handbook explains, but Unity's documentation is the final word on what an API does in your exact version. Learning to read it quickly is a skill in itself, and every chapter links into it.
| Document | What it's for | Where |
|---|---|---|
| Manual | How features work and how to use the Editor: concepts, workflows, settings | docs.unity.com · Manual 6000.3 |
| Scripting API | Every class, method and property you can use from C#, with examples | docs.unity.com · Scripting API 6000.3 |
| Package docs | Each package (Input System, Cinemachine, URP…) has its own manual and API, versioned by package | e.g. Input System 1.20 |
| Unity Learn | Official tutorials, pathways and sample projects | learn.unity.com |
Always check the version#
Every Manual and Scripting API page is written for one version of Unity, shown in the version picker at the top of the page. Search engines often land you on an old version or the newest beta. Before trusting a page, check that it says 6000.3 (Unity 6.3), the handbook's baseline. For a package, check that the version in the address matches the one in your project's Package Manager.
How to read a Scripting API page#
Take Rigidbody.AddForce as an example. Its page has, in order:
- The signature(s): the method's declaration, and its overloads (other versions with different parameters). This tells you the types to pass and what you get back; here
void, nothing:SignatureC# public void AddForce(Vector3 force, ForceMode mode = ForceMode.Force); - Parameters: what each argument means, including the units. Here
modedecides whether the force is applied as a continuous force, an impulse, an acceleration or a velocity change. - Description: what it does and, more importantly, the conditions: how each force mode treats the vector, which modes take the body's mass into account, and when the call has no effect at all. Most surprises are explained here.
- Example: a short script. Read it, but write your own version rather than copying it, since the examples often take shortcuts.
Two more things to look for: an Obsolete warning at the top, which means the API is on its way out and names its replacement; and the inherited members further down, which list what the class gets from its parents (Component, Object).
Old tutorials and Unity 6#
Unity has been around since 2005, and the internet is full of tutorials, forum answers and videos for versions that are long gone. Much of that material is still excellent, but its code may not compile, may compile with warnings, or may use a system Unity has since replaced. The handbook is written for Unity 6.3 LTS (editor version 6000.3.27f2), and every chapter has Unity 6 notes wherever an older course does things differently.
How Unity releases versions#
Since Unity 6, version numbers start with 6000 (Unity 6), then the minor version, then the patch: 6000.3.27f2 is Unity 6.3, patch 27. The letter after the patch says what stage the release is at: a for alpha, b for beta, f for final. The last number is a rebuild of that patch.
- LTS (long-term support) releases are the stable ones. They get bug fixes and no new features for about two years. Unity 6.3 is the current LTS, supported until December 2027. This is what studios ship games on, and what the handbook uses.
- Supported Update releases (such as Unity 6.6, from September 2026) bring new features between LTS releases and are supported for a shorter time. They're fine for learning, and a good way to try new features, but not what you'd start a long project on.
- Beta and alpha releases (Unity 6.7 beta and Unity 7.0 alpha, as of this writing) are previews. Don't use them for anything you care about.
What changed, in the code you'll meet most#
Here are the changes you'll run into most often in older tutorials, with what to use instead. You don't need to understand them all yet. Come back to this table when an old tutorial's code won't compile.
| In an older tutorial | In Unity 6 | Covered in |
|---|---|---|
rb.velocity, rb.drag, rb.angularDrag | rb.linearVelocity, rb.linearDamping, rb.angularDamping (and the same on Rigidbody2D) | T08 · 3D Physics: Rigidbodies, Colliders, Raycasts & Character Controllers |
FindObjectOfType<T>(), FindObjectsOfType<T>() | FindAnyObjectByType<T>() or FindFirstObjectByType<T>(); FindObjectsByType<T>(FindObjectsSortMode.None). Better: pass the reference in through a serialized field | T05 · Scripting in Unity: Lifecycle, Serialization, Coroutines & Awaitable |
Input.GetAxis("Horizontal"), Input.GetKeyDown(KeyCode.Space) | The Input System package: input actions, or Keyboard.current.spaceKey.wasPressedThisFrame for quick tests | T07 · Input System, Movement & Cameras (Cinemachine) |
UnityEngine.UI.Text | TextMeshPro (TextMeshProUGUI), now part of the uGUI package; or UI Toolkit | T20 · UI: uGUI and UI Toolkit, HUDs, Menus & Data Binding |
CinemachineVirtualCamera, using Cinemachine; | Cinemachine 3: CinemachineCamera, using Unity.Cinemachine; | T07 · Input System, Movement & Cameras (Cinemachine) |
| File > Build Settings | File > Build Profiles | T10 · Your First Complete Game Loop: States, Scenes, UI, Audio & Builds, T50 · Shipping: Build Profiles, Platforms, Web, Steam & Release Checklist |
| Post Processing Stack v2, Built-in pipeline shaders | URP: Volumes for post-processing, URP shaders and Shader Graph | T33 · Rendering in Unity 6: URP & HDRP, Cameras, PBR Materials & Post-Processing |
GraphicsSettings.renderPipelineAsset | GraphicsSettings.defaultRenderPipeline | T33 · Rendering in Unity 6: URP & HDRP, Cameras, PBR Materials & Post-Processing |
Application.LoadLevel(…), new WWW(url) | SceneManager.LoadScene(…), UnityWebRequest. (These old ones are removed entirely.) | T10 · Your First Complete Game Loop: States, Scenes, UI, Audio & Builds |
UNet (NetworkBehaviour from UnityEngine.Networking) | Netcode for GameObjects (Unity.Netcode) | T44 · Multiplayer Foundations: Networking Theory & Netcode for GameObjects |
| Coroutines everywhere for waiting | Coroutines still work; Awaitable with async/await is often clearer | T05 · Scripting in Unity: Lifecycle, Serialization, Coroutines & Awaitable |
Using the course files#
There are three good ways to use a course file, depending on whether you have the course.
- Instead of the course. Read the file's lessons in order and build its project. The project is original: same genre and same skills as the course's, but its own design and code, written for Unity 6. You don't need the videos.
- Alongside the course. Watch a module, then read the file's lesson for that module. Pay most attention to the Upgrades and the Unity 6 notes, which fix what has aged in the video, and to the exercises, which the video probably doesn't have.
- Before deciding to buy. Read the verdict and the syllabus map, which tell you who the course suits, what it does well and where it's weak, so you can decide whether it's worth your money and time.
What the files can and can't be#
The handbook is honest about how it's made, and you should know too:
- No video is transcribed and nothing is copied. Each course file is built from the course's public outline (its curriculum page, official description and free previews), plus original lessons, code and projects that teach the same skills. The order and depth follow the course; the teaching is the handbook's own. The real course is always linked, so you know where it lives.
- Code is checked, but not every line by Unity yet. Pure C# is compiled and run during writing. Unity code is checked against the Scripting API and then compiled in the sandbox project at each phase review. If you find a sample that doesn't compile, that's a bug worth reporting.
- Ratings are a snapshot from the source list in October 2026, and aren't re-checked.
- Where something couldn't be verified, the page says so, rather than stating it as fact.
Guided build: your personal study plan#
Every chapter has a guided build, a small project that uses everything in it. This chapter's project isn't a game. It's the plan you'll study by, and the journal you'll keep while you do. It takes about thirty minutes, and it's the difference between "I'm learning Unity" and knowing what you'll do on Tuesday evening.
You'll make two plain text files. Keep them in a folder of your own, outside the handbook: once T01 · Setting Up: Unity 6, Hub, IDE, Packages & Version Control has you set up with Git, put them in a repository so they're backed up and versioned like everything else you make.
Step 1 · Write your goal as something you could ship#
"Learn Unity" is not a goal you can finish. "Release a small 2D platformer with three levels on itch.io by the end of March" is. A good goal names a thing (a game, a tool, an effect reel, a job application), a size and a date. It can change as you learn; that's fine. Having one at all is what matters, because it decides which chapters are worth your time.
If you don't know yet what you want to make, use this as your first goal: "Finish P1 and build one small complete game from the guided build in T10 · Your First Complete Game Loop: States, Scenes, UI, Audio & Builds, with a change of my own, by [date]."
Step 2 · Count the hours you really have#
Look at an ordinary week and write down the times you could actually study: "Tuesday and Thursday 19:30–21:00, Saturday 10:00–12:00". Be honest. Everyone overestimates. A plan built on hours you don't have fails in the second week and makes you feel you've failed, when only the plan did. It's better to plan four hours and do five than to plan ten and do three.
Step 3 · Pick a route and estimate the time#
Choose the route from the table above that's closest to your goal, and write down its chapters. Use the time table to estimate how many weeks the first stage will take at your weekly hours. If the date in your goal is impossible, move the date or shrink the goal now, rather than finding out in three months.
Step 4 · Turn it into a schedule with reviews built in#
Plan new material for most sessions, and put review sessions in the calendar too, otherwise they never happen. A simple rule: when you finish a chapter, schedule a short review of it one day later, a week later, and a month later. Each review is the first ten minutes of a normal session (quiz, cheat sheet, or rebuilding the smallest example from memory), so it doesn't cost you a whole session.
Here's a template for the plan file. Copy it, then fill it in.
# My Unity study plan
## Goal
Release a small 2D platformer (3 levels, menu, sound) on itch.io by 2027-03-31.
## Weekly hours
Tue 19:30–21:00 · Thu 19:30–21:00 · Sat 10:00–12:00 (= 5 h/week)
## Route
A · Complete beginner → first finished game
2D variant: T00, T01, T02, T03, T04, T05, T06, T07, T09, T10
Core course files: C001, C009, C012
## First stage (P0 + P1 chapters): estimate 60–90 h → about 14–18 weeks at 5 h/week
Target: finish T10 by 2027-02-28
## Reviews (fill in as you finish chapters)
| Chapter | Finished | +1 day | +1 week | +1 month |
|---------|------------|------------|------------|------------|
| T00 | 2026-11-03 | 2026-11-04 | 2026-11-10 | 2026-12-03 |
| T01 | | | | |
## Check-ins (every 4 weeks)
- 2026-11-28: on schedule? still the right goal? what should change?Step 5 · Start the dev journal#
Make a second file, journal.md, and write your first entry now. Keep each entry short: if it takes more than five minutes, it won't survive a busy week.
# Dev journal
## 2026-11-03 · T00 (how to learn) · 1 h 20
Learned: recall before re-reading; spacing reviews; type, don't paste.
Stuck on: nothing yet.
Surprised by: how little re-reading actually helps.
Next time, start with: T01, install Unity Hub and the 6.3 LTS editor.
## 2026-11-05 · T01 (setup) · 1 h 30
Learned: .meta files hold the GUIDs, so never move assets in Explorer.
Stuck on: VS Code didn't autocomplete Unity types.
How I got out: set External Script Editor, then Regenerate project files.
Next time, start with: the Git section, first commit.The most valuable lines are Stuck on and How I got out. Six months from now you'll meet the same problem in a different project, and your own journal is the fastest search engine you have.
Step 6 · Track skills, not pages#
At the bottom of the plan, keep a list of the outcomes from each chapter's header card, and mark each one only when you can do it without the page. Pages read is a poor measure of progress; outcomes you can perform is a good one. When an outcome stays unmarked after you've finished a chapter, that's exactly what your next review should target.
## Skills (mark [x] only when you can do it without looking)
### T00
- [x] Choose a study route that fits my goal and hours
- [x] Run a study session: recall, read and type, break and build, quiz, plan
- [ ] Spot pre-Unity 6 code and name the Unity 6 replacement ← review thisStep 7 · Pick your first small project now#
Decide now what you'll build at the end of P1, even though you can't build it yet. Having a project in mind changes how you read: every chapter becomes "how would I use this in my game?", which is exactly the kind of thinking that makes knowledge stick.
Keep it small. A first project should have one core mechanic, fit on one screen or in one short level, and be finishable in about twenty hours. Good examples: a one-screen arcade game where you dodge falling objects; a ball-rolling game with five short levels; a top-down game where you collect ten things before a timer runs out. Bad examples: an open-world RPG, an MMO, "like Minecraft but…". Those come later, if you still want them, built on several small finished games.
Step 8 · Put the first check-in in your calendar#
Every four weeks, spend fifteen minutes on the plan: Are you on schedule? Is the goal still right? Which outcomes keep slipping? Change the plan rather than abandon it. Plans that get adjusted survive; plans that are only judged don't.
That's the build. You now have a goal, a schedule with reviews in it, a journal with one entry, a skills tracker, and a first project in mind. Check that you can answer these from your files without thinking: What do I study next session? When is my next review? What am I building at the end of P1?
Going further#
Game jams#
A game jam is an event where you make a game in a short, fixed time (usually 48 to 72 hours, sometimes a week or a month) around a theme announced at the start. Jams are the best training there is for finishing, because the deadline forces you to cut scope. Well-known ones include Ludum Dare, the Global Game Jam (held in January at local sites worldwide), and the GMTK Game Jam, plus hundreds hosted on itch.io every month. Once you're through T10 · Your First Complete Game Loop: States, Scenes, UI, Audio & Builds, enter one. Your jam game will be rough, and that's the point: you'll have shipped something, and you'll know exactly which chapter to read next.
Study games, not just tutorials#
When you play a game you like, play it once for fun and then once as a developer. Pick one small thing and work out how it's built: how far the character moves per button press, how long the jump lasts, what happens on screen in the half second after you're hit, how the camera follows. Write it down, then try to rebuild just that one thing in a scratch project. This trains your eye for exactly what makes games feel good, which tutorials rarely teach. T25 · Combat & Game Feel: Hitboxes, Feedback, Juice & Camera Work and T28 · Game Design Fundamentals: Loops, MDA, Lenses, Balancing & Playtesting give you the vocabulary.
Teach what you learn#
Explaining something is a strong form of retrieval practice, and it finds the gaps in your understanding very quickly. Write a short post about something you figured out, answer a beginner's question on a forum, or explain a chapter to a friend who doesn't know Unity. If you can't explain it simply, that tells you which section to go back to.
Build your portfolio from day one#
If you might want a job in games one day, keep everything you build, in Git, with a short note on what you made and what you learned. A portfolio doesn't start when you feel ready; it's the trail of finished small things you leave behind while you learn. T51 · Careers, Portfolio & How the Games Industry Works covers what studios look for. For now, make a habit of recording a short clip or screenshot of each thing you finish.
How studios onboard new developers#
When a studio hires a junior developer, nobody gives them a 40-hour course. They give them a small, real task in the real project, a more experienced person to ask, and code review on everything they submit. That's deliberate practice with feedback, and you can copy most of it: work on real small projects, find a study partner or community to review your work, and read other people's code, such as the sample projects on Unity Learn and the handbook's own guided builds, as seriously as you write your own.
Common mistakes & how to recover#
These are the patterns that stop people learning Unity. Each comes with the symptom, so you can recognise it in yourself, and the fix.
- Tutorial hell. Symptom: you've finished many tutorials, but freeze in front of an empty project. Why: tutorials are worked examples that never fade, so you practised following, not building. Fix: for every tutorial or guided build you finish, make one change of your own that the tutorial didn't cover, then build one tiny thing from scratch that uses the same idea.
- Skipping the exercises. Symptom: chapters feel clear while you read them and gone a week later. Why: reading is recognition, exercises are production. Fix: do at least the easy and medium exercises of every section before ticking "I've learned this".
- Copy-pasting code. Symptom: your projects work, but you can't explain why, and small changes break them. Fix: type it, then explain each line to yourself in a comment. Delete the comments once you can.
- A first project that's far too big. Symptom: months in, the dream game is a character that walks around an empty level. Why: scope grows faster than skill. Fix: park the dream game in a notes file, and finish three small games first. The dream game will be better for it.
- Learning from out-of-date material. Symptom: code from a tutorial gives obsolete warnings, or won't compile at all. Fix: check the date and Unity version of every source, and use the Unity 6 table in this chapter to translate.
- Binge and quit. Symptom: a twelve-hour weekend, then three weeks of nothing, then starting again from the beginning. Fix: fewer hours, more often. Put sessions in the calendar like appointments, and make the next session's first step tiny.
- Perfectionism. Symptom: rewriting the same player controller for the fifth time instead of moving on. Fix: give each feature a time limit. "Good enough for now" with a note on what to improve beats perfect and unfinished.
- No version control. Symptom: a change breaks everything and there's no way back, or a project is lost with a disk. Fix: T01 · Setting Up: Unity 6, Hub, IDE, Packages & Version Control sets up Git. From then on, commit at the end of every session.
- Comparing yourself to others. Symptom: someone online made a beautiful game in their first month, and you feel slow. Why: you're seeing their best result, not their hours or their background. Fix: compare yourself with your journal from a month ago, never with someone else's highlight reel.
- Studying without a goal. Symptom: reading chapters in order with no idea why, and losing interest by P2. Fix: write the goal from step 1 of the guided build, and let it choose your route.
Exercises#
1 · Find your way around
Using only the home page (filters and search), find: (a) the topic chapter that teaches raycasts; (b) the ★ core course file in P1 for 3D games; (c) every chapter that the Kitchen Chaos course file (C019) covers. Write down the IDs.
Hint
Search for "raycast" in the full-text search. For (b), filter to P1 and ★ core. For (c), the course rows list their topic chapters.
Solution
(a) T08 · 3D Physics: Rigidbodies, Colliders, Raycasts & Character Controllers (3D physics: rigidbodies, colliders, raycasts and character controllers). (b) C014 · Complete C# Unity 3D Game Development in Unity 6, the Complete C# Unity 3D Game Development course. (c) C019 covers T11 (clean code), T14 (events) and T10 (the complete game loop). If the search didn't find T08 yet, that's because it hasn't been written: search only covers written pages, while the filters cover every planned title too.
2 · Read a header card
Look at this page's header card. What's the difference between its study time and its reading time, and why are they so different?
Solution
Reading time is worked out from the word count (200 words a minute for prose, 12 lines a minute for code), so it's the time to read the page once. Study time is an estimate of reading plus exercises, the quiz, building and review. On most chapters study time is several times the reading time, because most learning happens while you're doing, not reading.
3 · Fix a bad session plan
A learner plans their week like this: "Saturday: 8 hours. Read T03 and T04 from start to end. Watch two hours of tutorials. Sunday: rest." Using the ideas in this chapter, list at least four things wrong with it and rewrite it.
Solution
Problems: everything is massed into one day (no spacing); it's all reading and watching (recognition, no production); no exercises or quiz (no retrieval); no review of earlier material; two big chapters in one sitting overloads working memory; and no time for building or breaking things.
A better version of the same eight hours: four sessions of about two hours (for example Tuesday, Thursday, Saturday, Sunday). Each one opens with ten minutes of recall, covers a few sections of T03 with every example typed and broken, does the exercises, and ends with the quiz and a journal entry. Saturday starts with the quiz from Tuesday's sections. The tutorials can go, or be replaced by one short video watched after the reading, as a second angle.
4 · Spot the old Unity
This script is from a tutorial written for an older version of Unity. Find every API that changed or was removed in Unity 6, and say what replaces each one. Then find one thing that's a bad idea in any version.
using UnityEngine;
using UnityEngine.UI;
public class OldPlayer : MonoBehaviour
{
public Text scoreText;
Rigidbody body;
GameManager manager;
void Start()
{
body = GetComponent<Rigidbody>();
manager = FindObjectOfType<GameManager>();
}
void Update()
{
float x = Input.GetAxis("Horizontal");
body.velocity = new Vector3(x * 5f, body.velocity.y, 0f);
if (Input.GetKeyDown(KeyCode.R))
Application.LoadLevel(0);
}
}Solution
UnityEngine.UI.Text→ TextMeshPro'sTextMeshProUGUI(using TMPro;).FindObjectOfTypeis obsolete →FindAnyObjectByType, or better, a[SerializeField]field assigned in the Inspector.Input.GetAxisandInput.GetKeyDownare the old Input Manager → Input System actions.body.velocity→body.linearVelocity.Application.LoadLevelis removed →SceneManager.LoadScene, from theUnityEngine.SceneManagementnamespace.
The bad idea in any version: setting a Rigidbody's velocity in Update. Physics runs on a fixed step, so physics changes belong in FixedUpdate. Read input in Update, store it, and apply it in FixedUpdate. (A smaller point: the public field would be a [SerializeField] private field in clean Unity code.) Here's a Unity 6 version; T07 · Input System, Movement & Cameras (Cinemachine) and T08 · 3D Physics: Rigidbodies, Colliders, Raycasts & Character Controllers explain each part.
using TMPro;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.SceneManagement;
public class Player : MonoBehaviour
{
[SerializeField] TextMeshProUGUI scoreText;
[SerializeField] GameManager manager; // assigned in the Inspector, not searched for
[SerializeField] InputActionReference move;
[SerializeField] InputActionReference restart;
[SerializeField] float speed = 5f;
Rigidbody body;
float moveX;
void Awake() => body = GetComponent<Rigidbody>();
void OnEnable()
{
move.action.Enable();
restart.action.Enable();
}
void Update()
{
moveX = move.action.ReadValue<Vector2>().x; // read input every frame
if (restart.action.WasPressedThisFrame())
SceneManager.LoadScene(0);
}
void FixedUpdate()
{
// apply it on the physics step
body.linearVelocity = new Vector3(moveX * speed, body.linearVelocity.y, 0f);
}
}5 · Read the Console
Explain, line by line, what this Console output tells you, and list the first three things you'd check.
NullReferenceException: Object reference not set to an instance of an object
EnemySpawner.SpawnWave () (at Assets/Scripts/EnemySpawner.cs:42)
EnemySpawner.Update () (at Assets/Scripts/EnemySpawner.cs:27)Solution
Line 1: some code used a reference that was null. Line 2: it happened on line 42 of EnemySpawner.cs, inside SpawnWave. Line 3: SpawnWave was called from Update, on line 27 of the same file. The stack trace reads from the most recent call down.
Check, in order: (1) every reference used on line 42: is any of them a field that isn't assigned in the Inspector (for example an enemy prefab or a spawn point)? (2) any GetComponent or Find… call whose result is used on that line: could it have found nothing? (3) whether something used on line 42 is set in a method that hasn't run yet, or has been destroyed. Then add a Debug.Log just before line 42 that prints each reference, to see which one is null.
6 · Rewrite a question
Someone posts this on a forum: "my jump doesnt work help!!! i tried everything". Rewrite it as a question that someone could actually answer. Invent the details you'd need.
Solution
One possible rewrite:
Title: Player can jump again in mid-air (Unity 6.3, Rigidbody, Input System).
I'm trying to make the player jump only when standing on the ground. I expected one jump per press while grounded, but pressing Space in mid-air jumps again. There's no error in the Console. I check grounding with OnCollisionEnter setting isGrounded = true, and set it false when I jump. Here's the 20-line script [code block]. The ground has a Box Collider; the player has a Capsule Collider and a Rigidbody. I've tried logging isGrounded: it's true while I'm in the air after touching a wall. Unity 6000.3.27f2, Input System 1.20.1.
Notice how the logging line nearly answers the question: the wall counts as ground. Writing a good question often solves the problem before you post it.
7 · Schedule three weeks of reviews
You'll finish T02 on a Monday, T03 the following Thursday and T04 the Wednesday after that. You study Monday, Wednesday, Thursday and Saturday. Lay out the first three weeks of sessions, with every review placed using the +1 day, +1 week rule (moving a review to your nearest study day is fine).
Solution
Week 1: Mon: finish T02. Wed: T02 review (+1 day, moved to the next study day), start T03. Thu: T03. Sat: T03.
Week 2: Mon: T02 review (+1 week), T03. Wed: T03. Thu: finish T03. Sat: T03 review (+1 day, moved to Sat), start T04.
Week 3: Mon: T04. Wed: finish T04. Thu: T04 review (+1 day), T03 review (+1 week), start T05. Sat: T05.
And a month after each finish date: T02, T03 and T04 cheat-sheet reviews in week 5 or 6. Each review is only the first ten minutes of a session, so there's still plenty of time for new material. Any arrangement that keeps the gaps roughly growing is right.
8 · Teach it back
Without looking at this chapter, write (or record) a three-minute explanation for a friend who's about to start learning Unity: why following tutorials isn't enough, and what to do instead. Then compare it with the chapter and note what you left out.
Notes on an approach
A strong answer covers: the illusion of competence (recognition isn't production); retrieval practice (test yourself before re-reading); spacing (many short sessions with reviews); typing and breaking code; worked examples first, then building on your own; and small finished projects over big unfinished ones. Whatever you left out is what your next review should cover. This exercise is retrieval practice too, which is why it's here.
Check yourself#
Which study technique did the Dunlosky et al. (2013) review rate as one of the most useful?
- Re-reading the chapter
- Highlighting key sentences
- Practice testing
- Watching the same tutorial twice
Practice testing (retrieval) and distributed practice (spacing) were rated highest. Re-reading and highlighting were rated low, because they build familiarity rather than the ability to recall.
You have 10 hours to study a chapter. Which plan will you remember best a month later?
- 10 hours on one Saturday
- Five 2-hour sessions over two weeks, each starting with recall
- One hour a day for ten days, re-reading the same sections
Spacing helps, but option 3 wastes it on re-reading. Option 2 combines spacing with retrieval practice at the start of every session.
Why do worked examples help a beginner more than an experienced developer?
- Beginners read faster
- Experienced developers don't need any examples
- Worked examples contain more code
- A beginner solving from scratch has no attention left to notice the pattern; once you know the basics, solving it yourself teaches more
That's the worked-example effect and its reversal, the expertise reversal effect, from cognitive load research. It's why examples fade into exercises and challenges as a chapter goes on.
A cross-reference shows as a dotted label instead of a link. What does that mean?
- The page it points to hasn't been written yet; the tooltip says which session writes it
- The link is broken
- The page is only available online
- The page is for paid courses only
Planned pages show as dotted labels and become normal links on the build after they're written.
Where are your "I've learned this" ticks and quiz scores stored?
- In your Unity account
- In the HTML file itself
- In this browser's local storage, on this device only
- On a handbook server
Progress lives in the browser's local storage. Use Export my progress on the home page to back it up or move it to another device.
A code block has a Unity sandbox badge. What does that tell you?
- It runs in your web browser
- The file is copied into the handbook's Unity project, so Unity's compiler checks it at each phase review
- It's an old API shown on purpose
- It only works in the Built-in Render Pipeline
Sandbox samples are complete files. The .NET console badge means pure C# that was compiled and run; the legacy badge marks old APIs shown on purpose.
An old tutorial uses rb.velocity. What's the Unity 6 name?
rb.speedrb.moveVelocityrb.velocity3Drb.linearVelocity
Unity 6 renamed it to make the difference from angularVelocity explicit. drag and angularDrag became linearDamping and angularDamping.
What does the version 6000.3.27f2 tell you?
- Unity 6.3, patch 27, a final (not alpha or beta) release, second build
- Unity 6, released in the year 3027
- Unity 6000, beta 27
- The 27th LTS release
6000 means Unity 6, 3 is the minor version, 27 is the patch, f means final (a = alpha, b = beta), and 2 is the build of that patch.
You've been stuck on the same bug for an hour. What's the best next step?
- Keep trying the same thing; you're nearly there
- Start the whole project again
- Shrink it to a minimal reproduction in a new empty scene
- Ask on a forum with "it doesn't work"
After about twenty minutes, change approach. Building a minimal reproduction often reveals the cause, and if it doesn't, it's exactly what you need to ask a good question.
Which is the best first project after finishing P1?
- An open-world RPG with crafting
- A one-screen game with one core mechanic, finishable in about twenty hours
- A multiplayer shooter
- A copy of a commercial game, level for level
Small and finished teaches the whole pipeline: menus, sound, builds and the bugs that only appear at the end. Big projects come later, built on several small finished ones.
Cheat sheet#
The study loop
- Read one or two sections
- Type every example
- Break it, read the error
- Change one thing, predict first
- Make something new with it
- Recall it days later
A 90-minute session
- 10 recall (from memory, then check)
- 35 read and type
- 30 break, change, exercises
- 10 quiz and journal
- 5 plan the next session
Review schedule
- +1 day: retake the quiz
- +1 week: rebuild the smallest example from memory
- +1 month: read the cheat sheet, fix gaps
- Mix old chapters at random
Unstuck routine
- Read the whole error; fix the first one
- 20 minutes, out loud (rubber duck)
- Minimal reproduction
- Search exact text; check the version
- Ask: goal, expected, actual, error, code, version, tried
Old → Unity 6
velocity→linearVelocitydrag→linearDampingFindObjectOfType→FindAnyObjectByTypeInput.GetAxis→ Input SystemUI.Text→TextMeshProUGUICinemachineVirtualCamera→CinemachineCamera- Build Settings → Build Profiles
Page features
- Contents button; Esc closes it
- / search (home page)
- Tick "I've learned this" only when you can explain it
- Export my progress (home page) to back up
- Print opens every solution
Courses that cover this#
No single course in the source list covers this chapter; it is original to the handbook.
Glossary#
- Phase
- One of the eight stages (P0 to P7) the handbook is split into. Each assumes the ones before it, except the four middle phases, which mostly stand alone.
- Topic chapter
- A page in TopicBased/ (T00–T72) that teaches one subject, merged from every course that covers it.
- Course file
- A page in CourseBased/ (C001–C129) that follows one course's own order and projects, in writing.
- ★ Core pick
- One of the 31 course files marked as the strongest project-based route through its phase.
- Planned label
- A dotted cross-reference to a page that isn't written yet. Its tooltip names the session that writes it.
- Illusion of competence
- The feeling of knowing something because it looks familiar, when you couldn't yet produce it yourself.
- Retrieval practice
- Recalling something from memory (a quiz, writing it out, rebuilding it) to strengthen it. Also called the testing effect.
- Spacing
- Spreading study and review over time instead of massing it into one session. Remembered much longer for the same total hours.
- Interleaving
- Mixing different kinds of problem in one practice session, so you practise choosing the right tool as well as using it.
- Worked example
- A fully solved problem you study before solving similar ones yourself. Best for beginners; less useful as you improve (the expertise reversal effect).
- Deliberate practice
- Practising tasks just beyond what you can do comfortably, with quick feedback and repeated attempts.
- Tutorial hell
- Being able to follow tutorials but not build anything without one. The way out is changing and making, not more tutorials.
- Stack trace
- The list of method calls that led to a runtime error, most recent first, with file and line numbers.
- Minimal reproduction
- The smallest project or scene that still shows a bug. Building one often reveals the cause.
- LTS
- Long-term support: a Unity release that gets bug fixes, not new features, for about two years. Unity 6.3 is the current LTS and the handbook's baseline.
- Dev journal
- A short dated note after each session: what you learned, where you got stuck, how you got out, and what to do next.