The one thing

[유니티 무료 버전으로 놀아보자 (8)]

- 단순 무식하게 만들어 본 점프 기능 -


  복잡한 스크립트나 이해하기 어려운 함수 따위는 배제하고 점프 기능을 넣어보고 싶었습니다. 어떻게 하면 간단하게 점프를 구현하는가가 관심사였죠.


  일단 손쉽게 점프를 구현하기 위해서 유니티에서 제공하는 물리엔진의 도움을 받기로 했습니다. 지난번에 자전거 캐릭터에 Rigidbody2D 속성을 넣어 물리 작용을 넣어 줬는데 여기에 원하는 방향으로 힘을 주는 함수가 있더군요.


  자전거에 달아둔 Character_move 스크립트 Update 부분에 다음을 추가했습니다. 하나하나 살펴보도록 하지요.


if (Input.GetKeyDown (KeyCode.Space)) {

/* 스페이스 바 키가 눌러지게 되면 다음을 실행합니다. */


if (transform.position.y < 1){

/* Y축으로의 위치가 1보다 작다면 */

     GetComponent<Rigidbody2D>().AddForce (transform.up * 5, ForceMode2D.Impulse);

/* 리지드바디2D의 속성에 위 쪽으로 5의 힘만큼 일시적인 힘을 가한다. */

}


  사실 바닥에 붙어 있을 때에만 점프를 하게 하려 했지만 충돌에 대한 부분은 아직 모르는 부분이 많아서 Y축의 위치에 따른 조건으로 처리했습니다.


  GetComponent<Rigidbody2D>().AddForce에 대한 부분은 시행착오가 많았습니다. 검색해본 바 많이들 rigidbody2D.AddForce 형식을 이야기하고 있었거든요.


  그런데 유니티가 상당히 똑똑한 가 봅니다. 알아서 경고 메시지를 남기고 변경할 것인지를 물어오더니 저렇게 바꿔 놨습니다.





  한가지 유의해야 할 점은 회전하지 못하도록 고정시켜 줘야 한다는 것인데, 캐릭터가 물리적 충돌에 의해서 마구 회전하게 된다면 상당히 독특한 상황이 연출됩니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading