-
[TIL] 12주차 4일 ( Raycast2D로 연속점프 방지하기 _ 트러블슈팅 )개발일지/스파르타 코딩클럽 부트캠프 2024. 7. 4. 21:03
트러블 슈팅
연속점프를 막기위한 Raycast2D 코드
private void FixedUpdate() { stateMachine.PhysicsUpdate(); if (Rigidbody.velocity.y < 0) { Debug.DrawRay(Rigidbody.position, Vector2.down * 2f, Color.yellow); RaycastHit2D rayHit = Physics2D.Raycast(Rigidbody.position, Vector2.down, 2f, groundLayer); if (rayHit.collider != null) { if (rayHit.distance > 0.5f) { isJump = true; } } } }
DrawRay 상으로는 분명 바닥에 잘 레이가 닿았는데 기능하지 않았다.
if(rayHit.distance < 0.5f) 에서 > 0.5f로 바꿔서 해결했다.
distance는 Ray의 원점에서 충돌체 까지의 거리라서
원점이 생각보다 위쪽에 잡혔기 때문에
원점까지의 거리가 0.5이상일 때로 바꿨고
그렇다고 추가 점프가 되지 않게 충돌체가 존재할때만 ditance를 계산한다.
하지만 이러고 빠르게 누르면 더블점프까지 되는 현상이 발생했는데
맨 위에 if (Rigidbody.velocity.y < 0) 조건을 붙여줘서
레이가 추락상태일 때만 발동하게 조건을 주어 해결했다.
'개발일지 > 스파르타 코딩클럽 부트캠프' 카테고리의 다른 글
[TIL] 12주차 5일 유니티 스킬 장착, 스킬 슬롯 로직 (0) 2024.07.05 [TIL] 12주차 3일 기술면접 대비 (0) 2024.07.05 [TIL] 12주차 2일 기술 면접 대비 (0) 2024.07.03 [TIL] 12주차 1일 ( FSM, 유한 상태 머신 ) (0) 2024.07.01 [TIL] 11주차 5일 ( 리소스 데이터 관리 ) (0) 2024.06.28