52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
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();
 | 
						|
    }
 | 
						|
}
 | 
						|
} |