Exemplo n.º 1
0
    private Vector3 TargetPositionForState(PanAnimationState state)
    {
        switch (state)
        {
        case PanAnimationState.Max:
            return(_startingPosition + panMax);

        case PanAnimationState.Min:
            return(_startingPosition + panMin);
        }
        return(_startingPosition);
    }
Exemplo n.º 2
0
    private PanAnimationState NextState(PanAnimationState state)
    {
        switch (state)
        {
        case PanAnimationState.Max:
            return(PanAnimationState.Min);

        case PanAnimationState.Min:
            return(PanAnimationState.Max);
        }

        return(PanAnimationState.Max);
    }
Exemplo n.º 3
0
    // Update is called once per frame
    void Update()
    {
        Vector3 targetPosition = TargetPositionForState(_state);
        float   progress       = Mathf.Clamp01((Time.time - _stateStartingTime) / panDuration);

        this.transform.position = Vector3.Lerp(_stateStartingPosition, targetPosition, EaseInOutQuad(progress));

        if (progress > 0.99f)
        {
            _state = NextState(_state);
            _stateStartingPosition = this.transform.position;
            _stateStartingTime     = Time.time;
        }
    }