ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 유니티 캐릭터 점프 구현하기
    유니티(Unity)/유니티 코딩 2019. 2. 6. 17:33

    해당 티스토리 페이지는 필자가 유니티 C# 개발을 하면서 학습한 내용들을 기록하고 공유하는 페이지입니다 !

    - 틀린 부분이 있거나, 수정된 부분이 있다면 댓글로 알려주세요 !

    - 해당 내용을 공유 or 퍼가도 좋으나, 출처를 꼭 명시해주세요 !

    - 해당 글의 모든 저작권은 Chameleon Studio에 있습니다.

    - 방문해주셔서 감사합니다 ^^



    썸네일 이미지입니다.유니티 캐릭터 점프 구현하기


    안녕하세요 ㅎㅎ 카멜레온입니다 !


    오늘은 캐릭터가 점프하는 법에 대하여 알아보겠습니다.


    이전에 <젤랑점핑>이라는 게임을 만들면서, 공튀기기류의 게임의 필수요소인 점프를 구현했었습니다.


    젤랑이 캐릭터로 점프하는 법을 알아봅시다 !


    따라하시고 싶으신 분들은 예제 파일을 첨부해드릴게요 !


    Test1.zip


    압축 파일을 다운받으시고, 폴더에 들어가서 Assets > Scenes > Test를 열어주세요.



    프로젝트 열린 이미지프로젝트 실행



    제가 준비해둔 Project 파일이 열렸습니다.


    기본적인 세팅은 다 해두었으니, 바로 점프 구현 코드를 넣어보겠습니다.


    젤랑이 오브젝트에 달려있는 JellangJumping 스크립트를 열어주세요.



    아래 코드를 캡처해놓은 사진입니다.이미지가 안보이시는 분들은 아래 코드 보기를 눌러서 코드를 확인해주세요.




    스크립트가 열렸다면 빈 부분에 위의 코드를 넣어주세요.


    간략히 코드 설명을 하겠습니다.


    우선 bounce라는 변수를 생성하고, float 수를 5정도로 주었습니다.


    그 다음 젤랑이와 젤랑이 밑에 있는 블록에 미리 콜라이더를 세팅해두었는데,


    스크립트에 콜리젼을 활용하여 젤랑이가 바닥에 닿으면, 위로 튀어오르게 끔 처리를 해주었습니다.


    콜리젼에 대해 잘 모르시는 분들은 여기를 눌러주세요.


    그럼 계속해서 코드 설명하겠습니다.


    rigid.velocity = Vector2.zero; => 젤랑이의 물리가속도를 0으로 둔다.


    Vector2 JumpVelocity = new Vector2(0, bounce);

     => JumpVelocity라는 변수를 두고, 해당 변수는 X값으로 0, Y값으로 5를 갖는다. 


    if (other.gameObject.tag == "Block") => Block이라는 태그를 가졌다면,


    rigid.AddForce(JumpVelocity, ForceMode2D.Impulse); => 젤랑이는 JumpVelocity 변수 값만큼의 힘을 가진다.


    이렇게 해서 젤랑이는 Y값으로 5만큼의 힘을 받아서 튀어오르게 됩니다.


    그럼 젤랑이가 잘 튀어오르는지 확인하러 가봅시다.


    스크립트를 저장하고 유니티로 돌아가주세요.





    ▶을 눌러주세요.


    어떠신가요? 젤랑이가 잘 뛰고 있나요?


    젤랑이의 점프 높이를 바꾸고 싶다면, 5f로 둔 bounce를 변경해보세요.


    값을 낮추면 조금 뛰고, 높이면 많이 뛴답니다.


    그럼 이번에는 젤랑이가 계속 뛰는 것이 아닌 키를 통해서 뛰게해볼까요?


    스페이스바 키를 누를 때만 뛰게해봅시다.


    다시 스크립트를 열어주세요.



    아래 코드를 캡처해놓은 사진입니다.이미지가 안보이시는 분들은 아래 코드 보기를 눌러서 코드를 확인해주세요.





    코드를 위의 코드로 변경해봅시다.


    이번엔 FixedUpdate문에서 스페이스바를 누르면,


    Vector2.Up = 위쪽 방향


    으로, bounce만큼의 힘을 받도록 하겠습니다.


    저장 후, 유니티로 돌아와서 ▶을 눌러봅시다.





    어떠신가요?


    스페이스바를 누를 때마다 젤랑이가 점프하고 있나요?


    스페이스를 누를 때, 젤랑이가 점프를 하고 있긴하지만 바닥에 닿지도 않았는데 점프를 하고 있습니다.


    하늘을 날아다니는 게임이 생각나는데요.


    그래도 젤랑이는 날개가 없으니 바닥에서 뛰어야 어색하지가 않겠죠?


    바닥에 붙어있을 때만 뛰게 해볼까요?


    다시 스크립트로 돌아가봅시다 !



    아래 코드를 캡처해놓은 사진입니다.이미지가 안보이시는 분들은 아래 코드 보기를 눌러서 코드를 확인해주세요.




    위의 코드로 수정해주세요.


    간단하게 코드 한 줄을 삽입해보았습니다.


    위의 코드는 젤랑이의 Y 가속도가 0일 때, 위로 뛰어오르게 하는 코드입니다. 


    수정하셨다면, 유니티로 돌아와서 ▶를 눌러봅시다.





    이제 젤랑이는 바닥에 닿았을 때만 점프하게 되었습니다.


    어떠셨나요?


    오늘은 젤랑이 점프 구현을 해보았습니다.


    오늘 나온 코딩에서 생소한 부분들이 있으셨나요?


    생소한 부분이나 좀 더 이해를 하고 싶은 부분이 있다면 제가 정리했던 내용들을 읽어보는 것을 추천드립니다.


    Rigidbody(리지드바디) 관련 내용

    Tag(태그) 관련 내용

    FixedUpdate문 관련 내용

    KeyCode(키코드(스페이스바)) 관련 내용


    오늘의 포스팅에서 궁금한 사항들은 댓글을 적어주시면 성심성의껏 답변드리겠습니다 !


    감사합니다 !


    Chameleon Studio가 만든 게임하러가기


    <젤랑점핑>

    안드로이드- market://details?id=com.Cameleon.TangTangBall

    IOS- itms-apps://itunes.apple.com/app/id1429522379



    <크러쉬팡>

    안드로이드- market://details?id=com.Chameleon.CrushPang 

    IOS- itms-apps://itunes.apple.com/app/id1450109331

    댓글

Designed by Tistory.