using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Audio; /// /// Class to deal with the other collisions for the core /// public class laserCollider : ColliderManager { public AudioClip corePickupSFX; public GameObject laserToken; public int laserTick; public GameObject LaserStick1; public GameObject LaserStick2; // Bool checks if the core has been collected, this is because the ships are made of multiple collision boxes and would trigger more than once. private bool _tokenCollected = false; public override void ProcessCollision(CollisionDirection direction, Collision collision, bool wasChild) { GameObject collisionGO; if (wasChild) { collisionGO = collision.transform.parent.gameObject; } else { collisionGO = collision.gameObject; } // Check the tag of the collided object, Direction doesnt matter i assume switch (collisionGO.tag) { case "Player": PickupToken(); break; } } /// /// Process the core pick up and destroy the core object. /// public void PickupToken() { // If the core has been collected ignore it. if (!_tokenCollected) { Debug.Log("Pick up laser"); _tokenCollected = true; AudioSource.PlayClipAtPoint(corePickupSFX, transform.position); Destroy(laserToken); while (laserTick != 0) { LaserStick1.transform.localScale = new Vector3(0.07000001f, 1.2f, 0.07000001f); LaserStick1.transform.position = new Vector3(LaserStick1.transform.position.x - 5.27541f, LaserStick1.transform.position.y - 1.240699f, LaserStick1.transform.position.z + 3.87f); LaserStick2.transform.localScale = new Vector3(0.07000001f, 1.2f, 0.07000001f); LaserStick2.transform.position = new Vector3(LaserStick2.transform.position.x - 0.2f, LaserStick2.transform.position.y - 1.3f, LaserStick2.transform.position.z + 3.62f); laserTick -= 1; } } } }