woensdag 11 november 2015

Unity C# Advance


Link


Waarom deze tutorial?

Na het kijken van de intermediate tutorials was het natuurlijk passend om ook de advanced tutorials te bekijken.

Het is een lijst van tutorials die ik hieronder los ga behandelen.

Wat heb ik er mee gedaan?

Ik heb voor deze tutorials geen eigen project gemaakt.

Wat heb ik er van geleerd?



Lists

Het verschil tussen lists en arrays is dat een list eigenlijk een dynamische array is. Je kan met een list tijdens het spel nog dingen aanpassen, terwijl een array vast staat. arrays worden vaak gebruikt om vaste slots aan te geven en lists vaak voor items, aangezien dat tijdens het spel meer kan worden.

Met lists kan je ook tijdens het speler dingen toevoegen.


Enums

Je kan met Enums states aangeven aan dingen. Het wordt vaak gebruikt in state machines.

Een voorbeeld is een character dat drie states heeft; zoeken, aanvallen en dood. Nu kan je hiertussen wisselen door een andere waarde te geven hieraan. Erg handig voor AI of iets dergelijks. Je kan het ook random maken (dus eentje willekeurig uitzoeken).


Structs and Classes V2

Een structs is bijna hetzelfde als een class maar een struct kan niet 'inharitance' gebruiken. Een struct wordt vaak gebruikt voor lichte opdrachten. Structs kunnen alles hebben wat classes ook hebben.

Met inharitance kan je bepaalde informatie bepalen voor bijvoorbeeld een wapen, maar omdat het ook een item is kan je alle informatie van items ook gebruiken. Dit is dus inharitance en kan alleen in classes.

Om een struct te maken verander je gewoon waar normaal 'class' staat in 'struct'.


Nullible types

Er zijn value types en reference types variables. Alles wat een waarde kan hebben kan geen Null zijn, maar een string bijvoorbeeld wel. Hij kan dan leeg zijn.

Wanneer je een vraagteken achter int,bool of string zet en dan een variable aangeeft kan de variable ook een Null zijn.

Null types kan je goed gebruiken om te kijken of er bijvoorbeeld al een character is aangemaakt.

Daarnaast kan je ook nog een variable doorgeven aan een method(function) en daarin checken of het een null is en wanneer dat zo is geeft hij de variable een waarde mee zodat hij nooit null kan zijn.


Interfaces

Met een interface kan je dynamischer werken. Het zijn componenten die je in je project kan plakken.

Je kan meer interfaces in een script houden dus het is handig om alles in een script te houden.

Interfaces maak je aan met: public interface (naam).
De naam is het beste om zo te noemen: I(naam van interface)able, bijvoorbeeld Iwalkable of IShootable.

Alles in een function is private.

Een class kan de interface implementeren door naast of in plaats van monobehavior de naam van de interface te zetten: public class (Classname) : Monobehavior, Iwalkable

In interfaces kan je types doorgeven zodat je hetzelfde stuk code kan gebruiken voor een andere type. Bijvoorbeeld een player andere damage geven dan een player.