Exemplo n.º 1
0
    private IEnumerator Kick_Cor()
    {
        can_Attack = false;
        _controller.Set_Is_Playable(false);
        _anim.SetTrigger("KickTrigger");
        _rigid.velocity = new Vector2(transform.localScale.x * 180f, -200f);

        kick_Collision.Make_Collider_Appear();
        for (float t = 0; t < 0.33f; t += Time.deltaTime)
        {
            _rigid.velocity = new Vector2(transform.localScale.x * 180f, _rigid.velocity.y);
            //敵と衝突時ノックバック
            if (kick_Collision.Hit_Trigger())
            {
                _rigid.velocity = new Vector2(40f * -transform.localScale.x, 180f);
                BeetlePowerManager.Instance.StartCoroutine("Increase_Cor", 8);
                _controller.Change_Animation("JumpBool");
                yield return(new WaitForSeconds(0.15f));

                break;
            }
            yield return(null);
        }
        kick_Collision.Make_Collider_Disappear();

        _controller.Set_Is_Playable(true);
        can_Attack = true;
    }
    private IEnumerator Kick_Cor(bool is_Sliding)
    {
        accept_Input = false;

        //入力受付後15フレーム以内にキック可能になればキック
        float loop_Count = 0;

        while (!can_Attack)
        {
            yield return(null);

            loop_Count++;
            if (loop_Count > 15)
            {
                accept_Input = true;
                yield break;
            }
        }
        can_Attack = false;
        _controller.Set_Is_Playable(false);
        _controller.Change_Animation("KickBool");

        //キック開始
        _rigid.velocity = new Vector2(transform.localScale.x * Kick_Velocity(), -Kick_Velocity());
        kick_Collision.Make_Collider_Appear();
        player_SE.Play_Kick_Sound();

        //キック中
        if (is_Sliding)
        {
            StartCoroutine("Sliding_Cor");
        }
        else
        {
            StartCoroutine("Kicking_Cor");
        }

        yield return(new WaitUntil(End_Kick));

        //キック終了
        if (_controller.is_Landing)
        {
            _controller.Change_Animation("IdleBool");
        }
        else
        {
            _controller.Change_Animation("JumpBool");
        }

        _controller.Set_Is_Playable(true);
        kick_Collision.Make_Collider_Disappear();

        float time = is_Sliding ? 0 : 0.05f;

        yield return(new WaitForSeconds(time));

        can_Attack   = true;
        accept_Input = true;
    }
    private IEnumerator Kick_Cor(Kind kind)
    {
        accept_Input = false;

        //入力受付後500フレーム以内にキック可能になればキック
        float loop_Count = 0;

        while (!_controller.can_Attack)
        {
            yield return(null);

            loop_Count++;
            if (loop_Count > 500)
            {
                accept_Input = true;
                yield break;
            }
        }

        //キック開始
        _controller.can_Attack = false;
        _controller.Set_Is_Playable(false);
        _controller.Change_Animation("KickBool");

        player_Body.Change_Collider_Size(new Vector2(10, 12), new Vector2(0, -6));
        player_SE.Play_Kick_Sound();

        if (kind == Kind.kick || kind == Kind.sliding)
        {
            kick_Collision.Make_Collider_Appear(false);
            StartCoroutine("Kicking_Cor");
        }
        else
        {
            kick_Collision.Make_Collider_Appear(true);
            player_SE.Play_Charge_Shoot_Sound();
            Quit_Charge(true);
            player_Body.Become_Invincible();
            StartCoroutine("Charge_Kicking_Cor");
        }

        yield return(new WaitUntil(End_Kick));

        //キック終了
        if (_controller.is_Landing)
        {
            _controller.Change_Animation("IdleBool");
        }
        else
        {
            _controller.Change_Animation("JumpBool");
        }

        _controller.Set_Is_Playable(true);
        kick_Collision.Make_Collider_Disappear();
        player_Body.Back_Default_Collider();

        if (kind == Kind.charge_Kick || kind == Kind.charge_Sliding)
        {
            player_Body.Release_Invincible();
        }

        _controller.can_Attack = true;
        accept_Input           = true;
    }