public override void Cast(Vector3 target) { caster.unitTransform.LookAt(target); Projectile projectile = _projectilePool.GetInstance(); projectile.Init(target, caster, template); }
public void Explode() { _target.Decrease(1); _target = null; ProjectilePool pool = ProjectilePool.GetInstance(); pool.DestroyProjectile(this); }
void FixedUpdate() { if (_isUsed) { if (!_target._isAlive) { _target = null; ProjectilePool pool = ProjectilePool.GetInstance(); pool.DestroyProjectile(this); } if (_target) { float distance = Vector3.Distance(transform.position, _target.gameObject.transform.position); transform.position = Vector3.MoveTowards(transform.position, _target.gameObject.transform.position, speed / distance); } } }