Unity Tutorials Getting Started

This is a living document.

Unity is a difficult software engineering tool to learn. There is a lot going on, with a complex editor, integrated visual systems for everything from visual effects to animation, to figuring out how your application is actually wired up. There is a lot to learn, and potentially a lot you don’t need to worry about.

Unity in our projects is currently one of the primary ways to build applications. It has the power to build completely realized Virtual Reality environments with realistic physics, or could be as simple as a set of UI to run an experiment. Depending on the level of project/application you are working on, you may need different tools. This will hopefully give you a couple of places to dive in and start using Unity, depending on what you are doing for your project or application development scheme.

Beginners & Simple Research Projects

If you are completely new to game engines in general, using editors for digital applications or just want to start somewhere, these tutorials might be helpful for you. If you are building out a simple scene for answering a question in your work, and just need a static UI, or simple game happening in one scene, these will be enough to get you going.

  1. https://learn.unity.com/pathway/unity-essentials - This gives you all the essentials directly from Unity itself. This goes through a nice self-direct pace to learn Unity, and will help you find your path if you want to get started.
  2. Brackeys - https://www.youtube.com/playlist?list=PLPV2KyIb3jR5QFsefuO2RlAgWEz6EvVi6 - This playlist is a bit older now, but it also goes through all the basics of Unity in a bit more of a game-development slant. He does a great job introducing the very basics of the concepts, and you can watch through pretty quickly to learn some more basics from a different point of view.
  3. Gamemaker’s Toolkit (GMTK)-https://youtu.be/XtQMytORBmM Finally, if you prefer to learn by “doing” and just want to follow along to get a dive into things, this is great starting place to again get comfortable. It’s good to supplement your basics with the actual course by Unity, but if you absolutely need to get going right away and want to follow-and-code-along, here is a great option.

Junior developers - Familiar with topics, but not game engines

If you are more familiar with coding in general, but want to get into the game engine space, there are some more slightly advanced tutorials you can go through that start to introduce you to the higher software engineering concepts that you will need to think about when building slightly more complex applications.

  1. https://learn.unity.com/pathway/junior-programmer - This gives you all the essentials above, but then starts to introduce you to more complex concepts like programming patterns that will become more important for those more complex projects. If you’re building an application or game that is going to be more than one “scene” in Unity, or that might have multiple moving parts (saving information, changing colors for user preference, more game logic, persisting scores/profiles etc.) then you will want to start here.
  2. Iain McManus - https://www.youtube.com/playlist?list=PLkBiJgxNbuOUf3dzZn2nkkahLHShQ2ghf - There are a LOT of tutorials here, but the topics are well covered. He goes into depth about every topic you could think of, and does a good job starting to explain more complex topics that you want to be aware of as you build out your applications. While not going through every single one
  3. Code Monkey - https://www.youtube.com/watch?v=AmGSEH7QcDg- Another really big “Learn by doing” video (10 hours long!), where they go through and develop an “Overcooked-like” game. This again gives you an introduction to many of the concepts that you might come across (ScriptableObjects, state-models, etc.) but in a learn-by-building way.

Advanced development - More complex projects

These tutorials really are for drilling down on the higher level software engineering that should go on with more complex projects. This is where you should learn about how different principles common across software engineering can be applied into the Unity space, and how we can start making sure the types of applications we are building for long-term use (e.g. clinical applications, BCI-Essentials Unity, etc.) are structured well and easily maintained.

  1. Git-Amend - https://www.youtube.com/@git-amend/playlists - This person does a great job going through classic Software Engineering principles like Model-view-controller, and how to implement this work into the Unity architecture. His videos are a bit hard to follow (e.g. where to start) but are linked together. Recommended is the Unity Architecture playlist at a minimum, as well as the Game Programming Patterns playlist.
  2. UNITE Presentation - https://www.youtube.com/watch?v=eIf3-aDTOOA- Gets to a lot of why you use these principles in Unity. The latter half is mainly an ad for the presenter’s framework “DI”, which isn’t needed.
  3. https://resources.unity.com/games/level-up-your-code-with-game-programming-patterns - Pretty much the handbook that you would need and want to do with Unity from a game design point of view.