캐릭터가 점프한후 공중에서 점프키 한번 더누르면 대쉬가 나가게 하고싶어서
if (isGrounded)
{
jumpDash = true;
}
if (Input.GetButtonDown("Jump"))
{
if (isGrounded)
{
theRB.velocity = new Vector2(theRB.velocity.x, jumpForce);
}
else
{
if (jumpDash)
{
dashCounter = dashTime;
if (!theSR.flipX)
{
theRB.velocity = transform.right * dashSpeed;
}
else
{
theRB.velocity = -transform.right * dashSpeed;
}
dashCounter -= Time.deltaTime;
if (dashCounter <= 0)
{
jumpDash = false;
}
}
}
}
대충 이런식으로 코드를 짰는데 점프한 후 점프버튼을 눌러도 대쉬가 씹힐때가 있는데 어디가 잘못된걸까
로그를 남겨서 확인해야지
맨 위에 isGrounded 체크도 불필요해 보이고
해당 댓글은 삭제되었습니다.
인덴트가 잘못된거임 잘보면 if문 밖이다
저게 어디서 실행돼는거야 코루틴? 업데이트? - dc App
isgrounded는 언제 false가 돼는거야? - dc App
dashCounter -= Time.deltaTime; 이거 if문 밖으로빼ㅋㅋ 저거때문인거같은데 - dc App
걍 FSM 써라..
구조상으론 대쉬가 씹히는게 아니라 점프가 이상해져야 맞는거 같은데
댓글에 있는거 다해봤는데도 안고쳐진다 왜이러지
중간중간에 로그 띄우고 + 영상 찍고 + 오류 발생시켜서 올려
dashcounter가 0이돼야 jump대쉬가 true가 돼는데 지금보면 스페이스바를 공중에서 존나 눌러야 dashcounter -=Time.deltaTime이 if문 끝자락에서 실행돼잖아 저게 문제가 아니더라도 if(Input.버튼다운)에서 빼는게 좋을거같아 - dc App
?? dashCounter 0이 되면 jumpdash 가 false 되는거잖어
어 그렇네 잘못봤다 ㅈㅅ; - dc App
영상찍어서 올렸음 혹시 봐줄수 있어?
맨위에 if(!isGorounded) 로 바꿔서 해봐
그리고 대쉬를 1회로 한정하고 싶으면 다른 변수 하나더 추가해서 1회 사용 이후엔 grounded 되기전에 다시 사용 못하게 막아야 될거임
dashcounter 계속 초기화하는데 deltaTime계속 빼봤자 의미가 있나
저거 공중에서 대쉬 1번만 사용하게 만들고싶어서 한건데 저거문젠가
걍 상태패턴 쓰자