Ingewikkeldheid: Unity 1 out of 5 stars C# 1 out of 5 stars

Benodigde Modules: Geen


In deze module ga je leren hoe je ervoor kan zorgen dat de Camera de Player blijft volgen, zodat je je levels groter kan maken dan wat in de rechthoek van de Camera past.


Als je een Player hebt die niet draait is het heel makkelijk om ervoor te zorgen dat de camera de Player volgt. Je maakt het camera object een kind-object van het Player object door in de Hierarchy het camera object op het Player object te slepen:

De Camera zal nu altijd meebewegen met de Player. In het Transform component kan je nu de relatieve positie van de camera vergeleken met de positie van de Player instellen. Als je de X en Y nu allebei op 0 zet zal de camera altijd op precies dezelfde positie staan als de Player en zal de Player dus altijd in het midden van het scherm staan. Je kan ook bijvoorbeeld de X negatief (onder de 0) maken zodat je meer kan zien van wat er rechts van de Player is.


Als je een ronde, rollende Player hebt kan je deze manier niet gebruiken, omdat de camera dan ook mee rolt met de Player, waardoor het hele beeld gaat draaien. In dit geval moet je een script maken dat hetzelfde resultaat heeft. Maak dus een nieuw script door met de rechtermuisknop in de Assets te klikken en naar Create -> C# Script te gaan. Noem dit script VolgCamera en voeg het toe aan je camera object. Open het daarna door erop te dubbelklikken.


Voor dit script heb je maar 1 variabele nodig. Je moet namelijk in kunnen stellen welk object de camera moet volgen (de Player). Deze variabele maak je van het type Transform, omdat alleen de positie van de Player belangrijk is. Zet dus bovenaan in de classpublic Transform Player;‘.

In de Start() methode moet je ervoor zorgen dat deze variabele goed ingesteld wordt. Dit doe je met de methode FindObjectOfType<>(). Deze methode geeft als resultaat het eerste dat hij kan vinden van het type dat je tussen de < > haakjes zet. De instructie die je in de Start() methode zet is dus ‘Player = FindObjectOfType<Player>().transform;‘. Door er .transform achter te zetten krijg je het Transform component van de Player.


In de Update() methode kan je er nu voor zorgen dat de Camera op de positie van de Player komt te staan. om de positie van de camera aan te passen moet je transform.position opnieuw instellen. Als je nu alleen ‘transform.position = Player.position;‘ als instructie neerzet zal de Camera precies op de positie van de player komen. Omdat de Camera echter in 3D werkt zal je nu niets zien: een camera moet altijd een stukje van datgene dat gefilmd moet worden af staan.

Om dit op te lossen zet je achter Player.position+ Vector3.back * 10‘. Vector3.Back is een vector die naar achteren wijst. * 10 betekent dat je het keer tien doet. Wat je hiermee doet is dus de camera 10 ‘meter’ naar achter zetten. De hele instructie in de Update() methode wordt dus ‘transform.position = Player.position + Vector3.back * 10;‘.


Het hele script moet er nu zo uitzien:

Als dit klopt kan je het script opslaan en uittesten!

Categorieën: Modules

guest
0 Reacties
Inline feedbacks
Bekijk alle reacties