티스토리 뷰

이제 캐릭터에 물리개념을 넣어야 합니다. 왜냐하면 사람이 걸어다닌 다는 것은 중력이 작용한다는 말입니다. 중력이 작용해야 땅위에서 사람이 생활할 수 있죠.

캐릭터들도 마찬가지 입니다. 중력이 작용해야 땅위에 서있을 수 있습니다.

계층에서 캐릭터를 선택 후 Inspector에서 Add Component -> physics 2D를 선택합시다.

굉장히 다양한 물리법칙이 있는데 Rigidbody 2D를 선택합니다. 이걸 추가해주면 해당 캐릭터(게임 오브젝트)는 물리법칙이 생깁니다. 어떤 물리법칙이 생기냐고요?

중력이 생겼다!

바로 중력이 생깁니다. 하지만 역시 또 문제가 있습니다. 땅을 만들었는데 땅위에 안있고 떨어져버리죠.

지금은 땅이라는 개념이 아니라 그냥 이미지 소스를 넣은 것 뿐입니다. 이 오브젝트 역시 물리개념을 넣어야 합니다.

계층에서 만들었었던 타일을 선택하고 Add Component -> Physics 2D -> Box Colider 2D를 지정해줍니다.

초록색 테두리가 생긴다

Box Colider 2D를 추가한 오브젝트는 네모난 Box 모양으로 초록색 테두리가 생깁니다. 즉, 이제 땅의 기능이 생겼다는 말입니다. 엄밀히 말하면 작용 반작용이라는 말을 할 수도 있는데 당연히 이해하고 있는 것들이니 넘어가겠습니다.

글자로 풀이할려니 당연한건데 뭔가 복잡합니다..

눈치 빠른 분들은 아실겁니다. 캐릭터에도 Collider 2D를 추가해야합니다. 무조건 Circle을 만들 필요는 없습니다. 원하시는 것을 하시면 됩니다. 저는 Circle을 하겠습니다.

Collider을 추가한 캐릭터 주위에 초록색 테두리가 생겼다

땅을 추가했을 때처럼 캐릭터 주위에도 초록색 테두리가 생겼네요. 지금 테두리는 큰 것 같습니다. 캐릭터 크기만큼 줄여보겠습니다.

Circle Collider 2D에 Edit(수정)을 눌러줍시다.

초록색 크기를 조정할 수 있습니다. 원하는 크기가 되었다면 다시 Edit를 누르면 해당 크기가 고정이 됩니다.

오뚜기가 되었다...

Circle Collider. 동그라미 충돌 테두리를 만들었기 때문에 오뚜기 처럼 기울리는 상황이 발생했습니다..!

현재 z 축으로 기울리고 있는 상황이죠. 간단한 문제입니다.

Rigidbody 2D -> Constraints -> Freeze Rotation Z 체크하면 더이상 Z축으로 게임 오브젝트가 오뚜기처럼 기울리지 않게 됩니다.

여기까지 진행했다면 땅위에서 캐릭터를 걷게하는 것이 가능합니다만, 뭔가 어색합니다.

사람은 앞을 보고 걸어가지만 현재 캐릭터는 한 방향만 바라보고 있기 때문에 왼쪽 또는 오른쪽으로 이동할 때 뒤로 걷는 것 처럼 보이는 상황이죠.

Flip은 뒤집다 라는 뜻이다

Flip 기능을 쓰면 지금과 같이 어색한 상황을 바꿀 수 있는데, 게임 오브젝트를 뒤집는 기능입니다.

현재 제 캐릭터는 오른쪽 방향만 바라보기 때문에 왼쪽으로 이동 시 Flip X 가 작동되게 해주면 되겠죠.

왼쪽 방향키를 눌렀을 시 Flip X가 true, 즉, 체크되도록 하였고 오른쪽 방향키를 눌렀을 시 Flip X가 false, 즉, 체크 안되도록 하였습니다.

this.gameObject.GetComponent<원하는_Inspector>().기능 = 원하는_반환값;

위 코드를 잘 읽어보면 어떤식으로 어디서 어떻게 작동하는지 대충 알 수 있습니다. 원하는 기능이 있으면 위 코드를 조금씩 변형해서 쓰시면 됩니다. 물론 저도 제대로 써본적이 별로 없으니 저 코드가 만병통치약인지는 모릅니다ㅎㅎ.

이제 왼쪽 방향으로 이동 시 왼쪽을 바라보고 오른쪽 방향으로 이동 시 오른쪽을 바라봅니다! 캐릭터(게임 오브젝트)를 움직이게 하는 것만으로도 많은 것을 알아야 하네요.

수고하셨습니다.

댓글