Exemple #1
0
        public override void Enter()
        {
            _stateEnterTime = Time.time;

            _owner.position = _owner.forward * 2000f;

            _movement.Deactivate();
        }
Exemple #2
0
        public override void Enter()
        {
            base.Enter();

            _movementBehaviour.Deactivate();
            _movementBehaviour.Activate();

            _stateEnterTime = Time.time;

            _animationBehaviour.PlayIdle();

            DOVirtual.DelayedCall(UnityEngine.Random.Range(3f, 5f), () =>
            {
                _animationBehaviour.PlayAgony();
            });
        }
Exemple #3
0
        public override void Enter()
        {
            base.Enter();

            _movementBehaviour.Deactivate();

            _animationBehaviour.PlayCatch();

            CharacterInputBehaviour characterInputBehaviour = _player.GetComponent <CharacterInputBehaviour>();

            characterInputBehaviour.enabled = false;

            Vector3 targetPosition = _player.position + _player.forward * 0.75f;

            targetPosition = new Vector3(targetPosition.x, 0f, targetPosition.z);

            float   moveStartTime = Time.time;
            Vector3 startForward  = _owner.forward;

            _owner.DOMove(targetPosition, 0.5f).OnUpdate(() =>
            {
                _owner.forward = Vector3.Lerp(startForward, -_player.forward, (Time.time - moveStartTime) / 0.5f);
            }).OnComplete(() =>
            {
                _owner.GetComponentInChildren <Light>(true).gameObject.SetActive(true);

                Transform camera = _player.GetComponentInChildren <Camera>().transform;
                _owner.forward   = -camera.forward;

                _player.LookAt(_owner.transform.position + Vector3.up * 1.5f);
                camera.LookAt(_owner.transform.position + Vector3.up * 1.5f);

                _animationBehaviour.PlayAgony();
                AiBehaviour.OnPlayerCatched?.Invoke();
            });
        }