Best Unity books for an experienced C# programmer?

I need someone to recommend a good book for a C# programmer who’s new to Unity. I already have some experience with DirectX/C++ as well as MDX, XNA Framework, SlimDX and SharpDX, so I know a good bit about game development. Unity is such a rich and feature-packed environment though I feel a bit overwhelmed trying to figure out the best way to accomplish things. I find myself reinventing a lot of wheels that don’t need to be reinvented. With my past programming experience, my first inclination is to always create a C# class and start doing everything with code. Then I’ll find out I could have done exactly the same thing in 2 minutes in the editor and do a heavy facepalm …

I’ll give you a classic example of this … I wanted to do a simple FPS demo shooting an AKM (an AK-47 variant) with some tracer rounds and be able to run around and shoot and actually hit stuff with the bullets. So, I spent a long time struggling to program nice and smooth procedural weapon sway and recoil and doing all these complex lerps and vector and quaternion math, then I realized wow I could I literally do all this with a couple of clever animations, inject an animation event to call some kind of OnFire method in a script attached to the gun and make that trigger the sound, particles and bullet spawning … so I tried it that way and had it working in 20 about minutes. Of course, more complex animations on AI-controlled NPCs has become rather frustrating for me, as I can make it work but can’t seem to figure out how to design anything to be re-usable, something I’m seeking some answers to in this thread, as well:

So I’ve done a good bit of playing around and tinkering in Unity and creating some interesting stuff, and I’ve moved at a pretty fast pace. But there are still a lot of gaps in my knowledge about Unity’s features, how to use certain things how to accomplish X, Y, Z in the best possible way. I know C# like the back of my hand, so that’s not what I struggle with … I do, however, struggle with figuring out how to create good architecture that’s going to scale across a real game and how I’m going to put together a bunch of complex subsystems and build something real.

Here’s something I’ve been playing around with, creating spells and weapons and collectible items and such:

I really need a good book written by a professional Unity developer that’s going to teach me the things I need to know, but not one aimed at beginners who have never written any code. I don’t need to waste time being tutored on how to declare variables or what a delegate or abstract class is. I need to dig into the guts of Unity’s features, editor and APIs and figure out how I’m going to engineer game architecture and work on real, large projects.

If anyone can recommend something that might be suitable for me I would greatly appreciate it! I’ve watched a lot of sporadic YouTube tutorials and read bits and pieces of the documentation to get my feet wet, but I need something more structured to learn all the things a professional developer needs to know. It is, after all, my intent to get a job working with Unity …

Thanks,

Aaron

I’m only aware of a single book that assumes you have existing knowledge of C#.

https://www.amazon.com/Unity-Action-Third-Joseph-Hocking/dp/1617299332/

2 Likes

Ahhh, that may be a good choice. I read the Xamarin in Action book, and it did assume a C# background and focused only on Xamarin knowledge itself.

Amazon.com: Hands-On Unity 2020 Game Development: Build, customize, and optimize professional games using Unity 2020 and C#: 9781838642006: Borromeo, Nicolas Alejandro: Books i have this book its good for unity development i used for my first project then i moved on to general c# development and got used to unity

I couldn’t agree more. I started with C# probably 14 or 15 years ago (lost track) and I’d been a pretty hardcore DirectX programmer for a long time, making my own little engines and high-performance applications. I even worked on some proprietary engines and applications as a DirectX dev. My very first languages were actually C and C++, at a young age, so I’ve always had an affinity for lower-level programming. But C# is also my absolute favorite, everyday language, and has been since I was a teenager (I’m 33 now)! C# has been a big part of my life for a long time now.

Although it was a bit confusing at first due to the sheer number of features, it turned out to be easier than I’d ever hoped or dreamed, haha. Unity has truly been a joy to work with. I couldn’t find the sort of books I was looking for so I just read documentation and professional articles non-stop, and watched some official Unity videos, GDC and some of Jason Weimann’s content. It was one of the fastest migrations I’ve ever made. I expected it to be more like learning to port C++ code from DirectX to OpenGL or something, so I was pleasantly surprised by how easy and smooth Unity makes almost everything to do. It went so fast for me I was able to jump right into a full-time job working with Unity instead of other APIs in no time at all, and advanced rapidly. I’ve been happily doing that for a while now, loving Unity! :heart:

No one does seem to write books for professionals migrating to Unity from another API though. Maybe that’s a “niche” market I will write something for someday. I think I wasted the most time looking for the things I wanted to know rather than actually learning them, and if there’d been a proper book for migration to Unity I could have gotten it all done in about 3 weeks … ‍

1 Like