강의실

충돌은 게임을 만들다 보면 게임오브젝트와 게임오브젝트간 두 물체가 부딪혔을때 튕겨야 하는데... 튕기지 않고 그냥 통과 한다면 유령게임과 같을것입니다.


이러한 물체와 물체가 부딪히는 경우를 처리해 주는것을 말합니다.


첫번째로 Collision 충돌이 있습니다.

좀전에 이야기한 물체와 물체가 부딪힌 것을 Collision 충돌이라고 합니다.


조건은 두 물체 모두 Collider를 가지고 있다. 여기서 Collider 란 게임오브젝트에서 이미지를 말하는 것이 아니고 충돌영역을 가지고 있어야 하는 것입니다. 충돌영역은 이미지보다 작을수도 있고 클 수도 있습니다. 이 범위를 나타내는 컴포넌트가 Collider 입니다.

Collider의 종류는 박스형,원형 등 여러가지가 있습니다.


또한 둘 중 적어도 하나는 Rigidbody 를 가지고 있어야 합니다. 여기서 Rigidbody 란 유니티에서 가지고 있는 물리엔진 컴포넌트입니다.

물리엔진에는 마찰,중력,탄성... 등을 나타내는 기능을 말합니다.


이러한 기능을 가지고 있으면서 Rigidbody를 가진 오브젝트가 움직이면서 다른 물체의 Collider 영역과 자신의 Collider 영역이 부딪혔을때 충돌을 처리해 주면 됩니다.


두번째로 Trigger충돌이 있습니다. 여기서 Collision 충돌과 Trigger 충돌과 다른점은 Trigger 충돌은 물체와 물체가 부딪혔을때 튕겨 나가거나 멈추거나 하는 동작 없이 그냥 물체를 통과 합니다. 유령이 사람을 통과하는 것 같은 것이죠... 그러면서 사람의 기를 빼앗아 버리는 효과를 낼때 필요하겠죠... Collision 충돌은 물체와 물체가 부딪혔을때 멈추거나 혹은 튕겨 나가는 형태의 처리가 가능합니다.

게임할때 전사가 공격하는 범위를 지정하는 경우 괴물이 들어왔는지 안왔는지 판단할때도 중요한 역할을 하는 것이죠.


조건은 첫번째 Collision 충돌과 동일하게 두물체 모두 Collider 를 가지고 있고 둘중에 하나는 Rigidbody 를 가지고 있어야 합니다.

그리고 또하나의 조건이 필요한데 둘중에 적어도 하나는 IsTrigger 옵션이 체크되어 있어야 합니다.


그러면 어떤 식으로 동작을 하는지 확인을 해 보겠습니다.

기존의 로봇에 우주 배경을 아래로 내려서 바닥과 같은 역할을 하고 로봇이 중력에 의해 떨어지다가 바닥에 닿으면 멈추는 형태의 프로그램을 구현해 보도록 하겠습니다.

유니티 충돌

먼저 우주 배경을 아래쪽에 내려서 바닥과 같이 만들었습니다.

여기에서 두 물체에 Collider 를 설정해 보도록 하겠습니다.

해당 게임오브젝트를 선택 후 인스펙터 뷰 화면에서 Add Component 를 클릭하여 Collider 을 검색 합니다.

위와 같이 Box,Capsule,Circle 등 다양한 Collider 가 검색 됩니다.

저는 2D 프로그램을 만들고 있기 때문에 Box Collider 2D를 선택해 보겠습니다.

2D 프로그램을 만들면 2D 용을 선택해 주셔야 합니다.

그러면 위와 같이 박스가 생기는데 이것이 Collider 이고 영역이 되는 것입니다.

여기서 Collider 영역의 범위를 수정하려면 edit Collider를 클릭하여 범위를 수정할 수 있습니다.


이렇게 두개의 객체에 Collider 를 생성해 주고 

다음으로 로봇에 중력을 주도록 하겠습니다. 중력은 위에 있으면 아래로 툭 떨어지는 효과를 말합니다.

로봇을 클릭 하여 Add Component 에서 Rigidbody 를 검색하면 다음과 같은 컴포넌트가 조회 됩니다.

여기서 2D 프로그램이므로 Rigidbody 2D 를 선택하겠습니다.

이렇게 추가 한 다음에 게임을 실행해 보면 로봇이 툭 떨어지면서 바닥에 고정이 되는 것을 확인 할 수 있습니다.


이 Rigidbody의 속성값들을 설정하여 물리엔진의 값들을 바꿔 볼수가 있습니다.


속성 값중에 Mass 부분은 질량을 뜻합니다.

Mass가 높아진다고 해서 더 빨리 떨어지는 것은 아니지만 떨어졌을때 그 충격량이 높아집니다.

그 다음 Linear Drag 는 직선 저항입니다.

이 물체가 직선으로 움직일때 의 속도를 설정합니다.

Angular Drag는 회전저항입니다.

물체가 회전을 할때 천천히 회전을 할것인지 빠르게 회전을 할것인지의 속도를 설정합니다.

Grabity Scale 은 중력 가속도 입니다.

1이면 아래로 떨어지고 -1이면 위로 올라갑니다.

Constraints 는 물체의 어떤 위치를 고정시키고 싶다고 하면 화살표를 클릭하여 체크하면 됩니다.

x를 체크하면 x축으로 고정이 됩니다.


유니티 프로그램설치 편 보러가기 - http://wondangcom.com/397

유니티 키보드 조작하여 객체이동하기 - http://wondangcom.com/396

유니티 게임오브젝트와 컴포넌트가 무엇인가? - http://wondangcom.com/469

유니티 인터페이스 화면 설명 보기 - http://wondangcom.com/470

유니티 충돌,중력 설정하기 - http://wondangcom.com/477 


검단,원당,불로,마전,당하동 컴퓨터 학원은 원당컴퓨터학원





이 장소를 Daum지도에서 확인해보세요.
인천 서구 당하동 1028-2 장원프라자 502호
도움말 Daum 지도
9 0
  • 청결원 2018.09.05 09:03 신고    

    오늘은 가을의 날씨 인듯 합니다
    포스팅 잘 보고 가고 오늘 하루도 즐거운 하루 보내세요~

  • 휴식같은 친구 2018.09.05 12:52 신고    

    직접 해보면 흥미롭겠네요.
    잘 보고 갑니다.

  • 행복사냥이 2018.09.05 17:15 신고    

    재미가 있겠어요.^^ 좋은 정보 감사해요.

  • 보여주는남자 2018.09.05 21:17 신고    

    오!! 흥미유발 대박
    순간 하던거 망강하고 빠져들뻔 ㅋ

  • 유하v 2018.09.05 23:09 신고    

    오우~ 간단한 효과를 만드는데도 어렵네요 ㅋ;;;

  • *저녁노을* 2018.09.06 06:02 신고    

    재밌을것 같아요

    잘 보고가요^^

  • 핑구야 날자 2018.09.06 06:42 신고    

    아이들과 함께 하신다면 오히려 아버지가 더 배워야 할 것 같네요

  • 공수래공수거 2018.09.06 08:11 신고    

    충돌 중력을 표현하는 유니티 강의로군요
    관련 공부하는 사람들에게 유익하겠습니다^^

  • 버블프라이스 2018.09.07 03:43 신고    

    흥미를 유발하고 재미있을것 같습니다^^
    덕분에 제가 몰랐던 부분에 대해 정보를 얻고 갑니다. 좋은 금요일 보내시길 바래요