_Han_
나의 개발 노트
_Han_
  • 분류 전체보기 (273)
    • 데이터 엔지니어링 (30)
    • 인프라 (3)
    • 추천시스템 (11)
    • 코딩테스트 (146)
    • 부트캠프 회고 (15)
    • 회고 (4)
    • 자격증 (1)
    • 파이썬 프로그래밍 (6)
    • 통계 (2)
    • Git (21)
    • 유니티2D (33)

최근 글

반응형
hELLO · Designed By 정상우.
_Han_

나의 개발 노트

#5 유니티 콜라이더(Collider), 리지드 바디(Rigid body) 컴포넌트
유니티2D

#5 유니티 콜라이더(Collider), 리지드 바디(Rigid body) 컴포넌트

2020. 11. 27. 00:51
반응형

이번 포스팅에서는 유니티에서 많이 사용하는 Collider 컴포넌트와 Rigid body 컴포넌트를 사용하는 것을 포스팅하도록 하겠습니다.

포스팅은 유니티 2D 게임 개발(게임 개발 프로그래밍)에 나온 에제로 진행합니다.

 

#1 유니티2D 개발 시작하기

안녕하세요 첫 포스팅입니다. 유니티2D 관련 포스팅을 진행하겠습니다. 게임개발에 필요한 지식을 전달하고 함께 학습하겠습니다. 먼저 유니티2D 개발 블로그 포스팅에 앞서 참고한 책을 소개합

my-develop-note.tistory.com

 


Collider(콜라이더 : 충돌체)

콜라이더는 게임오브젝트에 추가하는 컴포넌트입니다.

유니티에서는 콜라이더를 통하여 오브젝트가 충돌이 일어났는지 확인합니다.

오브젝트를 어림한 모양을 만드는 "프리미티브 콜라이더" 를 사용을 하고 "프리미티브 콜라이더"는 프로세서의 부담을 덜어주는 장점을 가지고 있습니다.

 

프리미티브 콜라이더는 Box Collider 2D 와 Circle Collider 2D가 존재합니다.

PlayerObject > Add Component > Box Collider 2D 를 검색하여서 컴포넌트를 추가합니다.

 

1. Box Collider 2D 컴포넌트의 이름 왼쪽에 보시면 아래 화살표 모양을 눌러 Box Collider 2D를 펼칩니다.

2. Box Collider 2D > Edit Collider > 도구 모양을 클릭하면 Scene뷰에 PlayerObject에 초록색테두리가 보이게됩니다.

이것이 바로 유니티에서 충돌이 일어났을때 확인하는 콜라이더 모양입니다.

저희는 Box Collider 2D 컴포넌트를 사용하기 때문에 Box모양으로 되어있는 것을 확인할 수 있습니다.

3. 초록색 테두리를 Object의 모양대로 확대/축소합니다.

4. 다시 Edit Collider > 도구모양을 클릭하여서 적용합니다.


Rigid body(리지드바디 : 강체)

리지드바디 컴포넌트는 유니티의 물리 엔진과 상호 작용할 수 있습니다.

리지드바디 컴포넌트로 중력과 같은 힘을 적용할 게임 오브젝트를 구별하고 적용합니다.

 

예를 들어 자동차 오브젝트에 가속 버튼을 누르게 되면 자동차가 가는 방향에 속력이 더 빨라지는 것을 볼 수 있습니다.

이러한 물리적 힘을 적용할 수 있게 해주는 것이 리지드바디 컴포넌트 입니다.

 

PlayerObject > Add Component > Rigidbody 2D 컴포넌트를 추가하게 되면 PlayerObject에 Rigidbody 2D 컴포넌트가 추가가 된것을 볼 수 있습니다.

 

Box Collider 2D 컴포넌트와 마찬가지로 Rigidbody 2D 컴포넌트의 이름 좌측에 화살표를 눌러서 Rigidbody 2D 컴포넌트를 펼칩니다.

1. Body Type > Dynamic(동적)

2. Mass(질량) > 1
3. Linear Drag(선 항력) > 0

4. Angular Drag(각 항력) > 0

5. Gravity  Scale(중력 크기) > 0

 

※Gravity Scale(중력 크기)를 1로 설정하고 게임을 진행하면 게임 오브젝트가 밑으로 한없이 떨어지는 것을 볼 수 있습니다. 이것은 중력 값이 설정이 되어서 그렇습니다.

 

저는 프로젝트 전체에 중력 값을 0으로 만들것이기 때문에 

Edit > Project Settings > Physics 2D > Gravity > Y 값을 0으로 바꾸었습니다.

 

※ Body Type은 3가지 Type이 존재합니다.

1. Dynamic(동적) : Dynamic은 다른 오브젝트와 충돌하거나 상호작용할 수 있습니다.

2. Kinematic(키네마틱) : Kinematic은 중력 등 외부의 물리적 힘에 영향을 받지 않습니다. 속도를 지닐 수 있지만 보통 스크립트를 통하여 Transform 컴포넌트의 값이 바뀔 때만 움직입니다.

3. Static(정적) : Static은 게임 안에서 오브젝트가 절대 움직이지 않습니다.

 

마지막으로 Ctrl + S를 눌러 Scene을 저장합니다!


감사합니다! :)

반응형

'유니티2D' 카테고리의 다른 글

#7 유니티 프리팹(Prefab)  (0) 2020.11.27
#6 유니티 태그(Tag), 레이어(Layer)  (0) 2020.11.27
#4 유니티 애니메이션 만들기  (2) 2020.11.23
#3 유니티 에셋스토어 (Free Platform Game Assets) 사용하기  (0) 2020.11.20
#2-3 유니티 인터페이스(도구 소개)  (0) 2020.11.20
    '유니티2D' 카테고리의 다른 글
    • #7 유니티 프리팹(Prefab)
    • #6 유니티 태그(Tag), 레이어(Layer)
    • #4 유니티 애니메이션 만들기
    • #3 유니티 에셋스토어 (Free Platform Game Assets) 사용하기
    _Han_
    _Han_
    학습한 것을 기록합니다.

    티스토리툴바