using System.Collections; using System.Collections.Generic; using UnityEngine; public class DamageableObject : MonoBehaviour { public GameObject fxExplosion; public void Damage(bool arrowOnFire, GameObject arrow) { if (arrowOnFire) { MeshRenderer meshRenderer = GetComponent(); meshRenderer.material.color = Color.red; StartCoroutine(ExplodeBarrel(1.0f, arrow)); } } private IEnumerator ExplodeBarrel(float waitTime, GameObject arrow) { yield return new WaitForSeconds(waitTime); GameObject explosion = Instantiate(fxExplosion, gameObject.transform); GetComponent().Play(); explosion.transform.localPosition = Vector3.zero; Enemy[] enemies = FindObjectsOfType(typeof(Enemy)) as Enemy[]; foreach (Enemy enemy in enemies) { if (Vector3.Distance(enemy.transform.position, transform.position) < 4.0f) enemy.Kill(true, false); else if(Vector3.Distance(enemy.transform.position, transform.position) >= 4.0f && Vector3.Distance(enemy.transform.position, transform.position) < 6.0f) enemy.TakeDamage(1, true, false); } GetComponent().enabled = false; Destroy(arrow); Destroy(gameObject, 4f); } }