1. Help us improve the editor usability and artist workflows. Join our discussion to provide your feedback.
    Dismiss Notice
  2. Unity 5.6 is now released.
    Dismiss Notice
  3. Check out all the fixes for 5.5 in patch releases 1 & 2.
    Dismiss Notice
  4. Get further faster with the Unity Plus Accelerator Pack, free for new Unity Plus subscribers for a limited time. Click here for more details.
    Dismiss Notice
  5. Learn how you'll soon be able to publish your games to China in four simple steps with Xiaomi. Sign up now for early access.
    Dismiss Notice

Good C# Book for Beginners?

Discussion in 'Scripting' started by AmadeusB, Jul 5, 2013.

  1. AmadeusB


    Jul 5, 2013
    Hello guys, I'm new to Unity and game developing and I want to make my own games, mainly for Android. I'm reading Unity 3.x Game Development Essentials by Will Goldstone (great book, by the way), but every time scripting time comes I get a little bit stuck, so I wanna learn C# more deeply. I want a book that teaches C# for beginners but that's focused on Unity, what's a good one? Thanks in advance.
  2. ctothej


    Jul 5, 2013
    It's not focused on Unity, but a great place to start is Head First C#. You can find the PDF online for free.
  3. jackie0100


    Jan 31, 2012
    Well if you wanna safe the trouble actually buying a get books shipped there is The internet, (you probably already heard of it since you're here :D) BergZregArcade on youtube is a great way to get C# and unity3D knowledge. Also there is loads of documentations and tutorials under unity3D's "Learn" (It should be on the top besides community). MSDN (Microsoft's code documentation site) is also pretty good for references and simple scripts. If this still isn't enough and if you wanna focus purely on C# you should, if you're a beginner, get the book called "C# Essentials" it's good for starters.
  4. SteveJ


    Mar 26, 2010
  5. exiguous


    Nov 21, 2010
  6. angrypenguin


    Dec 29, 2011
    I've said it before and I'll say it again: learn programming and Unity separately, because while they're used in tandem they're separate skills.

    Looking for a C# book is a good way to start. Once you've got the basics under your belt, then start applying it with your games in Unity. If you jump straight to making games and figuring out how to code as you go, you'll miss fundamental knowledge that will cost you dearly later on down the track.
  7. jonwd7


    Nov 10, 2012
    I found the layout absolutely nauseating. Handwritten font everywhere, arrows pointing all over the place. Thought bubbles. Clipart. I couldn't follow any of it at all.

    Essential C# 4.0 is good.
    C# 4.0 The Complete Reference is good too.

    They both start at the bare minimum components of the language and build up. There is no need to have a Unity-specific focus while learning C#. Just take what you learn in the books, and try it out. Like 90% of your actual game engine is going to be Unity-agnostic anyway. Aside from deriving from MonoBehaviour, using their built-in Vector classes, etc..

    There is no book for "beginner programming" in C# that focuses on Unity that I know of. There is the Unity 4.x Cookbook, though. It can show you how to do a lot of things for Unity in C#.

    However, in a week this book is coming out. It sounds like exactly what you want. I recognize the author name, too. She did a Unity 3.5 Essential Training video tutorial series for Lynda. Her teaching style may give you an idea of how the book may be.

    Unfortunately, IIRC she taught in Unityscript ("Javascript"). So the book might not use C# either.

    P.S. - If you mean learn programming concepts, then any beginner programming resource should do. There are all kinds of places. There is Khan Academy, CodeAcademy, and all kinds of video tutorial series.

    You shouldn't try to learn C# specifically while learning programming fundamentals. I'd personally use Python to learn programming. Unfortunately I went HTML > CSS > JS > PHP > Python > C++ > C#, and I highly, highly do not recommend learning C/Java-like languages first. The higher level the language, the better you can focus on the concepts.

    And if you like Python, you can always use Boo in Unity. Though it gets treated like a third-world option anymore, and any kind of external documentation / resources are basically nil. But I don't even like the fact that Unity's "JavaScript" is the de facto in the docs, when everyone seems to only take C# seriously around here (and for good reason). Maybe they believe it makes it more accessible to people who know JS, but their implementation looks like a foreign language to me, mostly because it's out of the context of web design, where a ton of people rely on jQuery, etc. and rarely venture into full-blown OOP.
    Last edited: Jul 5, 2013