저도 강의따라해보면서 하는데 캐릭터가 넘어지거나 하늘로 날라가는 현상이 발생해서 gravity도 kinetic도 빼보고 리셋시키고 하면서 하다가 넘어지게 되는 원인이라고 의심가는 부분이 나와서 올립니다.
저는 충돌처리하면서 넣었던 Collider가 약간이지만 Plane보다 밑에까지 설정되어있었습니다.
그래서 Play 버튼을 누르면 플레이어 Collider와 Plane가 충돌하면서 플레이어의 y축이 살짝 올라오게됩니다.
그 상태에서 바닥을 클릭하면
hit.point의 y값은 0.0이고
player의 y값은 0.1122 이고
PlayerControllers의 Update가 진행될수록 y값은 조금씩 작아지다가 일정 크기 이상 작아지면 플레이어가 넘어지는것을 확인할수있었습니다.
플레이어와 plane의 겹치는 부분이 일정량을 넘어가면 물리엔진이 발이 땅에 걸려서 넘어지는것과 비슷한 방식의 처리를 해주는것 같습니다.
그래서 코드에서
와 같이 y값을 잡아주는걸 넣었더니 넘어지지않고 잘 움직여졌습니다.
Rigidbody에서 Y축에 FreezePosition을 걸어줘도 같은 효과를 보일거같습니다.
자꾸 유니티짱이 넘어진다면 한번쯤 y축값을 확인해보시면 좋을것같습니다.
저도 이거 왜그럴까 찾고 있었는데 따봉 드리겠습니다
답글
방금 질문을 올렸는데 이걸 보고 해봤더니 적용이 잘 되네요. 감사합니다.
답글