ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 유니티 콜라이더 Collider 콜리젼 Collision 코드 정리
    유니티(Unity)/유니티 코딩 2019. 2. 5. 19:14

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

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

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

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

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



    썸네일 이미지입니다.유니티 콜라이더 Collider


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


    오늘은 Collider를 이용하는 매서드 중 Collision 매서드를 정리해볼까합니다.


    Collision 매서드는 총 3가지가 있는데요.


    각각 어떤 내용을 담고 있는지 알아봅시다 !



    1. OnCollisionEnter



    일반적으로 저는 트리거 or 콜리젼을 사용할 때 Tag를 지정해서 사용합니다.


    OnCollision 매서드는 2D 유니티 환경에서 작업할 때, 위의 코드처럼 뒤에 2D만 붙혀주면 됩니다.


    3D일 경우, 위의 코드에서 2D만 지워주시면 됩니다.


    다시 본론으로 돌아와서 OnCollisionEnter가 의미하는 내용은,


    저 코드의 스크립트가 달린 물체(A)가 다른 콜라이더를 가진 태그된 물체(B)와 "닿았을 때"를 의미합니다.


    A가 B에 닿았을 때를 의미하므로, 계속 닿고 있는 중이더라도 딱 1번만 감지합니다.


    2. OnCollisionStay



    다음은 OnCollisionStay입니다.


    위 코드의 스크립트가 달린 물체(A)가 다른 콜라이더를 가진 태그된 물체(B)와 "닿고 있는 중일 때"를 의미합니다.


    OnCollisionEnter와는 다르게, A와 B가 닿고 있으면 떨어지기 전까지 계속해서 감지합니다.


    함수 실행 순서 속도에 맞게 계속 감지하기때문에, A와 B가 닿고 있는 동안 CPU 메모리가 계속 사용됩니다.



    3. OnCollisionExit



    다음은 OnCollisionExit입니다.


    위 코드의 스크립트가 달린 물체(A)가 다른 콜라이더를 가진 태그된 물체(B)와 "닿았다가 떨어졌을 때"를 의미합니다.


    정확히 말하면, 닿았을 때와 머물렀을 때는 감지하지 않다가 둘이 떨어질 때만을 감지합니다.


    위 코드의 스크립트가 달린 캐릭터 A가 바닥 B에서 점프했다(떨어졌다)라는 처리를 하기 위한다면 OnCollisionExit가 적합하겠네요.



    이렇게 OnCollision 매서드들을 알아보았습니다.


    여러분들도 저 코드를 활용해서 유니티 내에서 OnCollision 매서드들이 콘솔창에 잘 찍히는지, 충돌감지를 잘 하고 있는지 확인해보세요.


    콜리젼에 대한 감이 아직 안 오신다 하시는 분들은


    OnCollision매서드들 중 OnCollisionEnter 매서드를 활용하는 포스팅을 정리해두었으니, 보고 따라하셔도 좋을 것 같습니다.


    이전 포스팅은 트리거(Trigger) 매서드를 정리해놓은 것도 있으니 아직 안 보신 분들은 구경해보세요. 콜리젼과 매우 비슷하답니다.


    감사합니다 !


    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.