Beispiel #1
0
        public override IEnumerator DoAction()
        {
            _startTime       = Time.time;
            _initialPosition = ReferencedSequence.ReferencedGameObject.transform.position;
            float distanceToTarget = Vector3.Distance(_initialPosition, _targetTransform.position);

            if (FaceMovementDir)
            {
                ReferencedSequence.ReferencedGameObject.transform.LookAt(_targetTransform);
            }

            while (_canMove)
            {
                float fracJourney = _distanceCovered / distanceToTarget;

                if (fracJourney >= 1)
                {
                    _canMove = false;
                }

                ReferencedSequence.ReferencedGameObject.transform.position = Vector3.Lerp(_initialPosition,
                                                                                          _targetTransform.position, fracJourney);
                _distanceCovered = (Time.time - _startTime) * MoveSpeed;
                yield return(null);
            }

            ReferencedSequence.DoNextAction();
            _canMove         = true;
            _distanceCovered = 0;
        }
Beispiel #2
0
        public override IEnumerator DoAction()
        {
            _rotationProgress = 0;
            _originalRotation = ReferencedSequence.ReferencedGameObject.transform.rotation;
            _targetRotation   = Quaternion.Euler(_originalRotation.eulerAngles.x, Rotation, _originalRotation.eulerAngles.z);

            if (RotateInstantly)
            {
                ReferencedSequence.ReferencedGameObject.transform.rotation = _targetRotation;
                ReferencedSequence.DoNextAction();
                yield break;
            }

            _canRotate = true;

            while (_canRotate)
            {
                _rotationProgress += Time.deltaTime * RotationSpeed;

                if (_rotationProgress >= 1)
                {
                    _canRotate = false;
                }

                ReferencedSequence.ReferencedGameObject.transform.rotation = Quaternion.Lerp(_originalRotation, _targetRotation,
                                                                                             _rotationProgress);

                yield return(null);
            }

            ReferencedSequence.DoNextAction();
        }
Beispiel #3
0
        public override IEnumerator DoAction()
        {
            ToriiObjectAnimator animator = ReferencedSequence.ReferencedGameObject.GetComponentInChildren <ToriiObjectAnimator>();

            animator.ChangeAnimation(AnimationName);
            animator.Play();
            ReferencedSequence.DoNextAction();
            yield return(null);
        }
Beispiel #4
0
        public override IEnumerator DoAction()
        {
            yield return(new WaitForSeconds(WaitTime));

            ReferencedSequence.DoNextAction();
        }
Beispiel #5
0
 public override IEnumerator DoAction()
 {
     ReferencedSequence.ReferencedGameObject.GetComponent <AudioSource>().PlayOneShot(_source.clip);
     ReferencedSequence.DoNextAction();
     yield return(null);
 }