public Vector3 GetPosition() { if (ActionStatus == TranslateTransformActionStatus.Completed) { return(_targetPosition); } if (ActionStatus == TranslateTransformActionStatus.Idle) { return(_startPosition); } float currentTime = Time.time - _startTime; var percentage = _easing.GetValue(_easingType, currentTime, _duration); if (percentage >= 1f) { ActionStatus = TranslateTransformActionStatus.Completed; return(_targetPosition); } var translationVector = _startPosition + (_path.normalized * (_path.magnitude * percentage)); return(translationVector); }
public void Start(Vector3 startPosition) { ActionStatus = TranslateTransformActionStatus.Started; _startTime = Time.time; _startPosition = startPosition; _path = _targetPosition - _startPosition; }