Ingewikkeldheid: Unity C#
Benodigde Modules: 3D Speler Bewegen
In deze module ga je de speler laten sprinten met de linker shift knop. De speler heeft energie en als deze op is kan je niet sprinten tot je uitgerust bent. Je maakt ook een UI balk om de energie te laten zien.
Begin in het script van de Speler met het toevoegen van de volgende variabelen:
Deze variabelen zijn nodig om alle dingen in te stellen voor het sprinten en om bij de houden of de speler aan het uitrusten is of niet. Er staan ook al standaardwaarden, maar die kan je altijd in het script of in Unity zelf aanpassen.
Ga vervolgens naar de Update methode en voeg daar op de juiste plek tussen waar je met de Vector3s de beweging bepaalt en waar je daadwerkelijk de Rigidbody verplaatst met MovePosition de volgende regels code:
In het commentaar staat weer wat er op elke regel gebeurt. Let goed op de Min en de Max methodes uit de Mathf klasse. Deze zorgen ervoor dat de energie nooit kleiner dan 0 of groter dan het maximale dat je ingesteld hebt wordt.
Vergeet in de laatste regel die je hier ziet niet om de * sprintboost toe te voegen. Hiermee zorg je ervoor dat de snelheid vermenigvuldigd wordt met de sprintboost en de speler dus sneller gaat lopen.
Als je dit allemaal goed gedaan hebt kan je nu al sprinten. Omdat je nog niet kan zien hoeveel energie je hebt is het wat moeilijk in te schatten. Je kan de Energie al wel in de Inspector van de speler zien. Om dat handiger te maken ga je hieronder nog een balkje maken die laat zien hoeveel energie de speler heeft.
Maak een nieuw script aan en noem dit EnergieBalk. Hieronder staat dit script:
Het groene commentaar verteld weer wat elke regel doet. Je kan de kleuren natuurlijk ook aanpassen als je liever andere kleuren hebt.
Maak nu in Unity een Image aan (+ -> UI -> Image). Dit wordt de buitenkant van de balk. Je kan dit op zich ook weglaten, maar het is mooier om een randje om de balk te hebben. Kopieer dit en zet de kopie als kind object van de eerste Image door het er op te slepen in de Hierarchy. Deze kopie wordt de daadwerkelijke balk die groter en kleiner wordt. Voeg aan de binnenste balk het EnergieBalk script toe als component. Stel daarna de Rect Transform en Image componenten van de balken in zoals in de volgende plaatjes:
Binnen Balk:Het Square plaatje bij Source Image is gewoon een wit vierkantje. Dit moet je wel doen om de Fill opties te krijgen. Je kan dit plaatje zelf maken of het 2D Sprite package te downloaden in de Package manager van Unity en dan in de Assets rechtermuisknop -> Create -> 2D -> Sprites -> Square te doen.
Let bij de buitenbalk er ook op dat je het goed instelt op top right bij het vierkantje aan de linkerkant van het Rect Transform component. Dit zorgt ervoor dat de balk altijd in de rechterbovenhoek blijft. Je kan ook een andere hoek kiezen, maar dan moet je de positie nog wel wat aanpassen.