Best way to learn Unity and C#?

Hi All,

I was wondering what’s the best way to learn Unity?

I’ve always watched youtube tutorials, read the documentation and played the official unity tutorials. However, not everyone could have started from here.

What was your way of learning C# and Unity?

Learned C# by reading the MSDN documentation and Unity simply by using it. Some of Zak Parrish’s tutorials helped too.

1 Like

I started with the learn section. Others recommend the yellow book. There are also more classical methods like a CS degree. A lot of places offer game based degrees now too.

I had a game to make, decided Unity was the right engine for the job, and jumped in head first.

Starting off with a clear set of goals is a good way to learn what you need to learn, at least for me. Maybe plan out a little game, figure out what you need for each major step, and attack each of those steps with vigor, one at a time. Before you know it, you’ll have learned a number of valuable lessons that make the next steps even simpler to accomplish. Keep going and that’s pretty much it. :slight_smile:

3 Likes

I learned basic OOP programming by digging into Actionscript 3.0. I learned C# by attempting to port the Flixel AS3 engine over to C# (using OpenGL for rendering). It was quite a weighty project for a relative beginner to tackle, but it definitely helped me to learn REAL fast.

The nice thing about a porting project is that most of it involves learning about the structure of a language, and how it compares to a different language. A lot of the research you have to do with such a project is related to poking at the systems you’re working with, and figuring out exactly how they work. In the course of that project I got to find out a whole lot about more basic C# structures, and how to use them.

Since then it’s been a steady progression of getting practice through various Unity3D projects and a little .NET from my day job on the side.

1 Like

If you want to be a good programmer then this book will prepare you to work very well in Unity:

Then you should work through the Unity Learn section:

in the basics of Unity like how to use the editor and the appropriate type game genre you’d learn 2D Platformer, FPS, and so on.

When you then feel comfortable with what you’ve learned and since you don’t mention wanting to create you own art you can learn and should learn to re-texture other’s art later (which is a job in itself to do correctly and nicely).

For human type semi-realistic characters you can use the free assets from DAZ’s ‘Morph 3D’ kiosk in the Unity Asset Store:

or

UMA 2.x from the Asset Store and associated free assets:

Finally you can cobble together some pretty nice scenes from the free assets Unity Technology and others provide in the asset store if you take care to match style, don’t over clutter in your scene, and choose lighting that makes the assets you use look better.

I came to C# from C++, so the transition wasn’t as difficult as someone coming in with no programming background. However, with virtually every programming language I’ve learned, toolset I’ve used, environment I’ve worked with, practical learning has always worked well to give me a clear and lasting understanding of what I’m getting into.

With Unity, back about 5 years ago I started with a tutorial set by a guy named “Peety” from BurgZergArcade. He created a ridiculously in-depth tutorial series that step-by-step creates a hack-n-slash rpg. Even if that isn’t the type of game you’re looking to create, the concepts still transfer over. He types the code out line-by-line along with you.

Here is the series

When it comes to learning, being able to find practical uses for the concepts you’re trying to grasp makes it infinitely easier. Simply knowing what something is by documentation (which in Unity is actually very robust and helpful) just isn’t as good as knowing when and why you would use it. Learning this way is the difference between knowing how to do something and having to constantly look it up online even though you’ve seen it 100 times.

Hope that helps

I started with the ´live training´ stuff on the Unity learn section. For me personally, I prefer to learn on real projects then reading documention that is written in a vacuum. The early live stuff with Mike was really good on the live training section… At the same time, I was watching the youtube tutorials from Brakays, Inscope and probably my favorite, Petey from Bergzerg Arcade. Almost all of their tutorials are based on real-game applications, so you not only learn C#, you learn how to apply it to create some systems that most games use. A couple other good tutors on Youtube are Quill18creates and xenosmash games. I am subscribed to about 10 tutors on youtube, most of them are not very active, but they already have a lot of great stuff.

edit, just counted, it is 13 tutors I am subscribed to.