68 lines
2.3 KiB
C#
68 lines
2.3 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Audio;
|
|
|
|
/// <summary>
|
|
/// Class to deal with the other collisions for the core
|
|
/// </summary>
|
|
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;
|
|
}
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// Process the core pick up and destroy the core object.
|
|
/// </summary>
|
|
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;
|
|
}
|
|
|
|
}
|
|
}
|
|
} |