// Update is called once per frame void Update() { timeUntilBlast -= Time.deltaTime; float g = timeUntilBlast / mBlastTime; rend.material.color = new Color(1f, 1f * g, 1f * g); MonsterGridMovement monster = null; if (timeUntilBlast <= float.Epsilon) { Instantiate(missileExplode); Collider[] hitColliders = Physics.OverlapSphere(blastArea.transform.position, blastArea.GetComponent <SphereCollider>().radius *blastArea.localScale.x); foreach (Collider c in hitColliders) { if (c.gameObject.GetComponent <MonsterGridMovement>()) { monster = c.gameObject.GetComponent <MonsterGridMovement>(); } } if (monster != null) { monster.TakeDamage(5); } Destroy(this.gameObject); } }
void FireAttack() { MonsterGridMovement monster = null; Instantiate(tankAttack); //Attack sound effect Collider[] hitColliders = Physics.OverlapSphere(transform.position, attackRange); //Find monster foreach (Collider c in hitColliders) { if (c.gameObject.GetComponent <MonsterGridMovement>()) { monster = c.gameObject.GetComponent <MonsterGridMovement>(); } } if (monster != null) { monster.TakeDamage(attackDamage); //Tell monster to take damage } LineRenderer shot = Instantiate(Resources.Load("Particles/Shot", typeof(LineRenderer)), transform.position, transform.rotation) as LineRenderer; shot.SetPosition(0, transform.position); shot.SetPosition(1, monster.transform.position); }