Laser

De volgende opdracht (en in de verhaallijn ook de laatste) waarover ik het zal hebben is de laser.

De laser wordt geactiveerd nadat je de keycard uit de kluis haalt, en hem in het bakje in het systeem steekt.



De Laser

script

De laser wordt eigenlijk aangemaakt via een combinatie van scripts.

Eerst maken we een 3D-cube aan waarop we ons eerste laserscript zullen toepassen.

Deze Cube mag eenderwaar in je scene staan. Dit hoeft niet persé een ChildElement te zijn van je laser Emitter, want de cube zal de Emitter worden.

In dit eerste script zorgen we ervoor dat de laser iedere frame zal updaten. Aangezien we straks met reflectie werken, zal er iedere frame eigenlijk een nieuwe laser gemaakt worden, en moet de vorige laser dus worden verwijderd.

Deze scripts staan (net zoals alle andere scripts) op https://github.com/Eerke2001/PersonalPassionProject.

Hier schreef ik ook de logica achter de laser zoals wanneer deze precies geactiveerd moet worden, of terug moet uitgeschakeld worden.

Voor het tweede script maken we de laser zelf.

Hier werken we met een Line Renderer.

In hoofdzaak zal de laser vertrekken vanuit onze 3D-cube, en colliden of stoppen met alles dat een Box-collider als component heeft.

Natuurlijk moet dit anders zijn voor onze spiegel, en moet de laser weerkaatsen na het aanraken van de spiegel.

Geef je spiegel een nieuwe tag via TagAdd Tag.

Dan kijken we in het script naar de tag van de colliders. Als het object waarmee de laser collide de tag 'Spiegel' heeft, zal de laser via een Reflect-functie verder worden gerenderd.

Tot slot moeten we nog een laser-ontvanger maken die het kanon tevoorschijn laat komen.

Deze laserontvanger zal terug een nieuw script toegekend krijgen waar we opnieuw gaan kijken naar een tag.

Op de laserontvanger zetten we terug een nieuwe 3D-Sphere of 3D-Cube met de tag 'Receive'.

In het script kijken we dan zal de laser een object met de tag 'Receive' raakt, en voeren we het script uit die het kanon zal later verschijnen.

Ook wilde ik dat de laser terug ge-deactiveerd werd 1 seconde na het onvangen van de laser. Daarvoor maakte ik enkele Bools aan die gekoppeld stonden aan verschillende scripts van de laser. Omdat er vaak communicatie nodig is tussen deze script zal je zien dat ik datzelfde systeem vaak opnieuw heb gebruikt.

Keycard

Om de laser pas te activeren werk ik dus met een Bool-Systeem die true of false zal doorgeven naar een ander script.

Als de keycard in de socket van mijn laser-bakje terechtkomt, stuur ik dus een signaal dat de laser mag geactiveerd worden.