but doubts arose me, I'm currently learning C # to be able to know how to program well enough in unity ... at level C #.
how to learn c#
but doubts arose me, I'm currently learning C # to be able to know how to program well enough in unity ... at level C #.
thanks for your comments ..
but doubts arose me, I'm currently learning C # to be able to know how to program well enough in unity ... at level C #.know C # is enough to program the unity or is something else needed?
The answer is that it depends on what you intend to do. However, you should focus on learning the basics of C# and Unity first.
Other things that you might need to learn down the road depending on your goals are shader programming and SQL.
hey! my goal in this moment is learn c# but i want make games in unity
thanks for your comment :D
Once you have got to grips with C# basics make sure you invest the time to learn Linq, It is the best feature to be added to the language and very powerful if you use it correctly. There are gotchas with Linq in that the lazy evaluation trips people up and debug flow is not what you would expect but well worth the time and effort to learn. Your code will be more concise and easier to reason about
Also Unity has some strange conventions around properties and fields, the visual editor tends to work directly off fields instead of properties, which is ugly. You just have to accept that in the Unity framework. I think the reason is that properties can have side effects so they go direct to the backing store.
Thanks for your answer but i have one question...
linq help me to be better do games in unity? what do you think is better to learn for making games in unity?
Linq is simply a way of composing computations together, in itself it will not make games better or worse. Most people think it just relates to enumerable sequences but as long as you structure your code and building blocks together correctly can be used to describe all sorts of computations.
The thing that learning Linq gives you is a different way to look at problems and build a solution differently than if you just have an imperative mindset.
With Linq you are really describing what you want to do, not how you want to do it. The following for example is a validator in my game engine, an old school roguelike, that determines if a move is valid. This uses my IValidation<Level> monad instead of IEnumerable<T>
public static IValidation<Level> CanMoveActor(
this Level level, long actorId, Vector newLocation)
{
return
from actorState in level.ActorStateExists(actorId)
from actorTile in level.IsValidLocation(actorState.Location)
from actor in actorTile.HasActor(actorId)
from withinRange in actorState.IsWithinMoveRange(newLocation)
from validMove in level.IsValidMove(newLocation)
select level;
}
The result is either the level instance the move was validated against (My entire game state is immutable so I can get away with this) or a reason why the move is invalid. It will process each validation in turn unless an error is found at which point it will short circuit and return the error. As you can see, all control flow such as if statements to check if each test passed or not is hidden away so that it just describes what I want to do.
Linq will not make your game better but it will make you a more knowledgeable programmer and that will make your game better
Md4friends: you really should work on your critical thinking.
If you like it, then it's good.
Too many projects; too much time
thanks for your opinion, i just make these questions because i'm new on this and also new to learn c#
one more time... thanks for your comment
cumps, md4friends