void OnTriggerEnter(Collider other) { if (other.gameObject == target) { return; } if (other.tag != "Enemy") { return; } Vector3 colDir = other.transform.position - transform.position; //Debug.Log(gameObject.name + " atingiu " + other.gameObject.name); ///////////////////////////////// Quaternion colQua = Quaternion.FromToRotation(transform.forward, colDir); GameObject spellGO = Instantiate(normalBullet, transform.position, colQua); TowerSpell towerSpell = spellGO.GetComponent <TowerSpell>(); SkillsProperties skillPro = spellGO.GetComponent <SkillsProperties> (); // Spell need to know who instantiated him skillPro.SetInvoker(gameObject.GetComponent <SkillsProperties>().GetInvoker()); if (towerSpell != null) { towerSpell.Seek(other.transform); } }
// Will instantiete the shot and make it fallow the target private void Shoot() { GameObject spellGO = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation); TowerSpell towerSpell = spellGO.GetComponent <TowerSpell>(); SkillsProperties skillPro = spellGO.GetComponent <SkillsProperties> (); // Set tower values in SkillProperties script on instantiated prefab skillPro.SetDamage(GetDamage()); skillPro.SetCooldown(GetCooldown()); skillPro.SetRange(GetRange()); skillPro.SetSideEffectValues(GetBurnValue(), GetSlowFactor(), GetRangeRadius(), GetEffectDuration()); // Spell need to know who instantiated him skillPro.SetInvoker(gameObject); if (towerSpell != null) { towerSpell.Seek(target); } }