Learning C# through Unity

Hello everyone.I would like to know if unity is a good way to learn C#.My main goal would be to be able to develop games using C# and unity, but i am not sure if this is the right way to learn C#.I already know C and C++ to a decent level from my point of view( i know about classes an so on).I love games and this would be nice way for me to learn this language.
The reason i am asking this is because i want to know if the notions that i learn through unity can be used outside of unity.
Sorry if the question may seem stupid but i couldn’t find an answer.

With many things unity specific and a narrowed down c# version support, I don’t recommend it. Go straight C# in you really want to learn specifically C#. If you want to develop games, thats a different story.

I don’t know how much it will help from c/c++ background, asides some shader codes and classes. Know that multiple inheritance is not supported in c#,nor the macros. You have to go through interfaces for that. Also I don’t know about “decent” keyword. I consider myself as noob in c/c++ programming, as I am not comfortable with low level bit-byte and memory manipulations(why not some macros too :p).

Actually it might be better to learn actual language through features, in stead of some language specific keywords and recipes.

it probably is a good idea to get some understanding of c# before just using it in unity, but if you really want just go through some c# unity tutorials. you already have programming experience so it shouldn’t be hard for you to get the basics down. you can always go back later and do some c# specific tutorials as well.

I strongly suggest to check: Learn

If you already know an object oriented language relatively well then I think you’ll be fine learning C# on the fly. That’s more or less how I did it, coming from C++ to write a game in C#/XNA.