업데이트 함수에서
if (Input.GetButtonDown ("Jump"))
isJumping = true;
isJumping = true;
해당 함수를 구현했고, FixedUpdate 함수에서
Jump함수를 호출 했습니다.
void Jump() {
if (!isJumping)
return;
rigidbody.AddForce (Vector3.up * 5f, ForceMode.Impulse);
isJumping = false;
}
if (!isJumping)
return;
rigidbody.AddForce (Vector3.up * 5f, ForceMode.Impulse);
isJumping = false;
}
이게 점프 함수의 코드인데요, 코드 상의 문제가 있나요 ??
위로 올라가서 내려오지를 않습니다. 리지드바디의 중력을 체크, 언체크 모두 해봤음에도 동일하네요.
조금 의아한건 제자리에서 점프시 내려오지 않는데, 앞으로 이동하면서 런닝 점프 시에는
멀쩡히 잘 점프합니다. 뭐가 문제일까요? ㅜㅜ
다른 부분에 문제가 있는거임
다른 부분도 올려봐
http://docs.unity3d.com/ScriptReference/Rigidbody-velocity.html
가만보니 코딩보단 물리가 부족한거같다야. 일반물리학에서 역학파트 떼고와라 유니티에서 각속도랑 토크도 다뤄주는구먼
ㄴ 얘 코드 올린 부분은 아무런 문제 없는데? 중력은 물리엔진에 의해 다뤄지는 상태고 쟤는 점프 버튼 누르면 수직 상승 방향으로 힘이 가해지게 잘 짜놨는데?
ㄴ 괜히 지가 모르니까 글 올린사람 물리지식 타령하네
ㄴ 실제 세계에서도 그렇지만 점프나 발사를 할때 중력반대방향으로 힘을주는건 일순간이고, '계속'주는게 아니라서 그래. 그래서 보통 v_0이라는 초기속도가 방향은 위이고 크기는 양수라고 정해놓지. 유니티의 addVelocity는 지정한 방향으로 힘이 계속들어가는거여. 레퍼런스 눌러보면 알겨
말하자면 얘가 짠건 로켓 이륙 알고리즘이지, 점프알고리즘이 아니여.... 이해갔남?
혹시내가 모르는게있나 싶어서 다시 보니까 ForceMode.Impulse라는게 있네... 이게 임펄스함수로 주는거라고 해도, 내가 올린 링크로 하는게 좋을겨... 왜냐면 스크립트레퍼런스 만든놈이 그렇게 추천을 하네
ㅁㅁ 야 모르면 걍 아닥해. IsJumping 플래그 쓰고 ForceMode.Impulse 써서 순간적으로 힘 가하는거 안보이냐? 좀 읽어보고 시비걸어라
넌 기본적인 물리는 아는데 기본적인 프로그래밍을 모르는거야? 이정도 소스를 해석 못하다니..
그리고 현재 몸체의 속도나 가속도 등 처해있는 여러 상황까지 다 따지려면 velocity 직접 건드리는거 보다 AddForce쓰는게 더 편하다. 이게 현실과도 맞아 떨어지고.
그리고 레퍼런스에는 왠만하면 velocity 직접 건드리지 마라고 되어있는데 먼소리하냐 도대체
릴랙스...틀리면 내가틀린거고, 니가 틀린건 아니니까 화 고만내.. 워낙 간단해서 내가 대충본것도 있어. 돌리는놈이 알아서 판단해서 취하겠지.
점프할 때 수정하는 거는 하나의 예시라고 했지 AddForce보다 더 추천한다거나 그런 말은 없다
ㅇㅇ 릴랙스할게 미안.
나의여친 온몸승부 야외노출 훔쳐보기 소라앨범 실시간 간편 이!지#소%라^