コード例 #1
0
    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);
    }
コード例 #2
0
    public void Start(Vector3 startPosition)
    {
        ActionStatus = TranslateTransformActionStatus.Started;

        _startTime = Time.time;

        _startPosition = startPosition;

        _path = _targetPosition - _startPosition;
    }