Пример #1
0
 public override void OnStateEnter()
 {
     if (_originSO.whenToRun == SpecificMoment.OnStateEnter)
     {
         _protagonist.StartCoroutine(SetParameter());
     }
 }
Пример #2
0
    private IEnumerator StartDash(Protagonist battler)
    {
        CharacterController cc = battler.GetComponent <CharacterController>();

        cc.detectCollisions = false;

        Vector3 direction = battler.movementInput;

        if (direction == Vector3.zero)
        {
            direction = battler.transform.forward;
        }
        battler.transform.forward = direction;


        while (startTime + Duration > Time.time)
        {
            cc.Move(direction.normalized * _speed * Time.deltaTime);
            cc.Move(new Vector3(0, -10f * Time.deltaTime, 0));
            yield return(null);
        }

        cc.detectCollisions = true;
        battler.StartCoroutine(Done(battler));
    }