You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.5 KiB
52 lines
1.5 KiB
using UnityEngine; |
|
using System.Collections; |
|
|
|
namespace EpicToonFX |
|
{ |
|
|
|
public class ETFXTarget : MonoBehaviour |
|
{ |
|
[Header("Effect shown on target hit")] |
|
public GameObject hitParticle; |
|
[Header("Effect shown on target respawn")] |
|
public GameObject respawnParticle; |
|
private Renderer targetRenderer; |
|
private Collider targetCollider; |
|
|
|
void Start() |
|
{ |
|
targetRenderer = GetComponent<Renderer>(); |
|
targetCollider = GetComponent<Collider>(); |
|
} |
|
|
|
void SpawnTarget() |
|
{ |
|
targetRenderer.enabled = true; //Shows the target |
|
targetCollider.enabled = true; //Enables the collider |
|
GameObject respawnEffect = Instantiate(respawnParticle, transform.position, transform.rotation) as GameObject; //Spawns attached respawn effect |
|
Destroy(respawnEffect, 3.5f); //Removes attached respawn effect after x seconds |
|
} |
|
|
|
void OnTriggerEnter(Collider col) |
|
{ |
|
if (col.tag == "Missile") // If collider is tagged as missile |
|
{ |
|
if (hitParticle) |
|
{ |
|
//Debug.Log("Target hit!"); |
|
GameObject destructibleEffect = Instantiate(hitParticle, transform.position, transform.rotation) as GameObject; // Spawns attached hit effect |
|
Destroy(destructibleEffect, 2f); // Removes hit effect after x seconds |
|
targetRenderer.enabled = false; // Hides the target |
|
targetCollider.enabled = false; // Disables target collider |
|
StartCoroutine(Respawn()); // Sets timer for respawning the target |
|
} |
|
} |
|
} |
|
|
|
IEnumerator Respawn() |
|
{ |
|
yield return new WaitForSeconds(3); |
|
SpawnTarget(); |
|
} |
|
} |
|
} |