public ArrowBullet(Transform Trans, ArrowBulletDescriptor Desc) : base(Trans, BulletType.Arrow, Desc.BaseBulletDesc) { StartPos_ = Desc.BaseBulletDesc.Position; EndPos_ = Desc.TargetPos; var MaxY = Mathf.Max(StartPos_.y, EndPos_.y); var DisX = Mathf.Abs(StartPos_.x - EndPos_.x); var ControlPos = new Vector2((StartPos_.x + EndPos_.x) / 2, MaxY + DisX / 2); BezierCurve_ = BezierCurveFactory.CreateBezierCurve(StartPos_, ControlPos, EndPos_); BezierTime_ = DisX / Mathf.Max(Desc.Speed, 1); CurrentTime_ = 0; StayTime_ = 1.0f; IsStaying_ = false; GetComponent <SpriteRenderer>().color = Desc.ArrowColor; var NextPos = BezierCurve_.Lerp(0.01f); SetRotationWithNextPos(NextPos); //AudioManager.PlaySound("audio/tf_arrow_bul.mp3"); }
public MotionContainer BezierMove(float Time, Vector3 Begin, Vector3 Control, Vector3 End, bool IsRelative) { MotionList_.Add(new BezierMoveMotion(Time, BezierCurveFactory.CreateBezierCurve(Begin, Control, End), IsRelative)); return(this); }