using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Audio; /// /// Class to deal with the other collisions for the core /// public class MultiCollider : ColliderManager { public AudioClip corePickupSFX; public GameObject radiusToken; public GameObject PlayerOne; public SphereCollider Cores; private GameObject areaAround; public int radiusTick; // 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 radius"); _tokenCollected = true; AudioSource.PlayClipAtPoint(corePickupSFX, transform.position); Destroy(radiusToken); while (radiusTick > 0) { Cores.radius = 10; radiusTick -= 1; } Destroy(areaAround); } } }