Пример #1
0
        public override IEnumerator RestartSequence()
        {
            MansfeldCharacter.SetPosition(_oldPosition);
            _elapsedTime = 0f;

            var startingPosition = MansfeldCharacter.GetPosition();

            MansfeldCharacter.SetAnimationFloat(AnimationSequence.animationName, 1);

            yield return(new WaitUntil(() =>
            {
                //Return if elapsed time has reached its completion time.
                if (_elapsedTime >= _duration)
                {
                    return true;
                }

                //Calculate the distance traveled by the elapsed time.
                var newDistance = Mathf.InverseLerp(0, _duration, _elapsedTime) * _distance;

                //Calculate the position from the starting position and the forward direction multiplied by the distance.
                var newPosition = startingPosition + MansfeldCharacter.GetForwardVector() * newDistance;

                //Set the new position.
                MansfeldCharacter.SetPosition(newPosition);

                //Increment the elapsed time.
                _elapsedTime += Time.deltaTime;

                return false;
            }));

            MansfeldCharacter.SetAnimationFloat(AnimationSequence.animationName, 0);
            DynamicAnimation.OnAnimationFinishedPlaying();
        }
Пример #2
0
        public override IEnumerator RestartSequence()
        {
            MansfeldCharacter.SetAnimationBool(AnimationSequence.animationName);
            yield return(new WaitForSeconds(_duration));

            DynamicAnimation.OnAnimationFinishedPlaying();
        }
Пример #3
0
        public override IEnumerator PlaySequence()
        {
            MansfeldCharacter.chair.SetActive(true);
            MansfeldCharacter.SetAnimationBool(AnimationSequence.animationName);
            yield return(new WaitForSeconds(_duration));

            MansfeldCharacter.chair.SetActive(false);
            DynamicAnimation.OnAnimationFinishedPlaying();
        }
Пример #4
0
        public override IEnumerator PlaySequence()
        {
            DynamicAnimation.SpawnMansfeld(_offset, new Vector3(0, _rotation, 0));
            MansfeldCharacter = DynamicAnimation.MansfeldCharacter;

            _elapsedTime = 0;
            MansfeldCharacter.SetAnimationBool(AnimationSequence.animationName);

            yield return(new WaitUntil(() =>
            {
                _elapsedTime += Time.deltaTime;
                return _elapsedTime >= _duration;
            }));

            DynamicAnimation.OnAnimationFinishedPlaying();
        }
Пример #5
0
        public override IEnumerator PlaySequence()
        {
            MansfeldCharacter.bed.SetActive(true);
            yield return(new WaitUntil(() =>
            {
                //Return if elapsed time has reached its completion time.
                if (_elapsedTime >= _duration)
                {
                    return true;
                }

                MansfeldCharacter.SetAnimationBool(AnimationSequence.animationName);
                return false;
            }));

            MansfeldCharacter.bed.SetActive(false);
            DynamicAnimation.OnAnimationFinishedPlaying();
        }
Пример #6
0
        public override IEnumerator RestartSequence()
        {
            MansfeldCharacter.SetRotation(new Vector3(0, _oldRotation, 0));
            _elapsedTime = 0f;

            var yStartingRotation = MansfeldCharacter.GetRotation().y;

            yield return(new WaitUntil(() =>
            {
                var percentage = Mathf.InverseLerp(0, _duration, _elapsedTime);
                var newRotation = percentage * _rotationAmount;
                MansfeldCharacter.SetRotation(new Vector3(0, yStartingRotation + newRotation, 0));
                _elapsedTime += Time.deltaTime;
                return _elapsedTime >= _duration;
            }));

            DynamicAnimation.OnAnimationFinishedPlaying();
        }
Пример #7
0
 public override void FastForwardSequence()
 {
     MansfeldCharacter.SetRotation(new Vector3(0, _oldRotation, 0));
     MansfeldCharacter.SetRotation(new Vector3(0, MansfeldCharacter.GetRotation().y + _rotationAmount, 0));
     DynamicAnimation.OnAnimationFinishedPlaying();
 }
Пример #8
0
 public override void FastForwardSequence()
 {
     MansfeldCharacter.SetPosition(_oldPosition + MansfeldCharacter.transform.forward * _distance);
     MansfeldCharacter.SetAnimationFloat(AnimationSequence.animationName, 0);
     DynamicAnimation.OnAnimationFinishedPlaying();
 }