public override void OnInvoke(AttachmentArgs args) { base.OnInvoke(args); var bullet = GameManager.instance.BulletManager.GetStraightBullet(transform.position); BulletParam param = new BulletParam() { Power = (int)(50 * _owner.Attack), Speed = 10f, Range = Range, }; if (_owner is IPlayerUnit) { var player = _owner as IPlayerUnit; var target = TapTargetManager.instance.TargetEnemy; if (target != null) { param.Direction = (target.Trans.position - transform.position).normalized; } else { param.Direction = player.MoveDir; } } else { param.Direction = Vector3.ProjectOnPlane(transform.up, Vector3.up).normalized; } bullet.SetBulletInfo(param); bullet.Owner = _owner; }
protected override void OnUpdate() { base.OnUpdate(); var args = new AttachmentArgs() { BaseAttack = 1f }; switch (_invokeType) { case InvokeType.Always: OnInvoke(args); break; case InvokeType.ConstInterval: if (_elapsedTime > InvokeInterval) { OnInvoke(args); _elapsedTime = 0f; } _elapsedTime += Time.deltaTime; break; } }
public virtual void OnInvoke(AttachmentArgs args) { }