// 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); } }
PlayerBase targetBase; // fake chat aims here, adjusted in update if there's one closer // Use this for initialization void Start() { monster = GameObject.FindObjectOfType <MonsterGridMovement>(); for (int i = 0; i < numFakeUsers; i++) { string name = "user" + i; FakeUser fake = new FakeUser(name); // TODO: add random CD offset to the message so its not all at once? fakeUsers.Add(fake); } }
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); }