Unity1

2 minute read

UNITY 공부 1일차


image

지난 시간들의 플루터를 지나 오늘은 유니티를 공부해 볼 것이다. UNITY란 Unity Technologies에서 개발한 게임 엔진으로 접근성이 높고 낮은 요구 사양으로 Unity에서 만든 게임으로는 Gang Beasts, Getting Over it with Bennett Foddy (즉, 항아리 게임), Overcooked 등이 있다.


1. Unity Interface

image

  1. 작업 뷰포트 - 게임 오브젝트를 선택하고 수정 가능한 공간.
  2. 인게임 뷰 - 실제 게임에서 보여지는 공간.
  3. 게임 오브젝트 탐색기 - 현재 게임 Scene에 올라온 오브젝트들이 있는 공간
  4. 애셋 탐색기 - 각종 애셋들을 정렬해놓은 공간
  5. 게임 오브젝트 속성창 - 선택한 게임 오브젝트의 속성을 설정할 수 있는 공간

image

현재 레이아웃 설정을 2 by 3 설정으로 해두었다. 이 설정에서 애셋 탐색기만 아래로 내린 상태가 현재 인터페이스이다. 자신이 편한 레이아웃으로 자유롭게 설정 가능하다.

지금 상태를 보면 상자가 여러개 화면에 놓여져있다. 이를 설정하는 방법은 GameObject -> 3D Object -> Cube에서 cube를 한 개 생성하고 이를 복사해서 크기, 회전 등 속성을 바꾸어 보았다.

image

image

위의 사진에서 buzzi cube 하나를 복사해서 복사본이 생겼다!


2. Cube 속성 제어하기

방금 만든 Cube 속성을 제어해서 자유롭게 다뤄보자.

image

  1. (단축키 Q) ctrl 키를 누르면서 시점을 이동할 수 있다. 또한 마우스 휠로 조종하여 확대/축소가 가능하다. 마우스 오른쪽을 누르면서 시점 이동.
  2. (단축키 W) 오브젝트의 위치 (x축, y축, z축) 를 바꿀 수 있다.
  3. (단축키 E) 오브젝트를 회전시킬 수 있다.
  4. (단축키 R) 오브젝트의 크기를 조정할 수 있다.

image

image

image

순서대로 W, E, R 순이다.

이 때, 굳이 단축키가 아니어도 게임 오브젝트 속성창에서 조절이 가능하다!

image


3. 물리적 성질을 추가하여 충돌시켜보기

앞에 배운 큐브를 이용해서 물리적 성질을 추가해서 충돌시켜보자.

image

아까와는 다른 오브젝트 구성이다. Quad를 추가해주어서 Cube가 떨어질 때, 받춰주도록 하였고 Sphere을 추가해서 Quad에 떨어지기 전에 Sphere과 부딪히도록 한다.

image

Edit -> Project Settings -> Physics 에 들어가면 위와 같이 Gravity 항목이 있다. 표준으로 y에 -9.81으로 되어있다. 이것이 기본 중력 값이고 자유롭게 변경 가능하다.

물리적 성질을 이용하기 위해 추가해야할 component들이 있다.

1. Rigidbody

Rigidbody는 GameObject가 물리 제어로 동작하게 한다. 리지드 바디가 포함된 모든 게임 오브젝트들은 중력의 영향을 받아야 하며 다른 오브젝트들과 상호 작용한다.

Mass : 오브젝트의 질량 Drag : 오브젝트가 힘에 의해 움직일 때 공기 저항이 영향을 미치는 정도 -> 이를 사용하면 위의 오브젝트 예시에서는 공기에 의해 부딪히기 전에 공이 날라가고 있다. Angular Drag : 오브젝트가 토크로 회전할 때 공기 저항이 영향을 미치는 정도, 위의 예시의 경우에는 회전하지 않아서 영향이 없는 것 같다. Use Gravity : 중력을 사용할 것인지 정한다. is Kinematic : 이를 활성화시키면 물리 엔진을 받지 않고 Transform의 영향을 받는다. Interpolate : 이전, 다음 프레임에 맞게 추정하여 움직임을 부드럽게 처리한다. Collision Detection : 빠르게 움직이는 오브젝트가 충돌 감지 없이 다른 오브젝트들을 지나쳐가는 것을 방지한다. Constraint : 움직임에 대해 x, y, z축을 제어가능하다.

2. Box Collider

말 그대로 충돌을 의미한다.

is Trigger : 이를 활성하면 물리 엔진의 적용을 받지 않는다. Material : 콜라이더가 다른 콜라이더와 상호작용하는 방법을 결정하는 레퍼런스 Center : 포지션 Size : 크기를 정해준다. 크기를 기준 크기보다 크게 하면 그 크기에 맞게 충돌한다.

3. Mesh Collider

메시 에셋을 사용하고 해당 메시를 기반으로 콜라이더를 빌드한다.

Convex : 이를 활성화한 메시 콜라이더는 다른 메시 콜라이더와 충돌 가능하다. -> 맨 처음에 Cube와 바닥이 충돌 되지 않아서 왜 충돌이 되지 않을까 했는데 Convex를 활성화 시키니 충돌이 되었다. 메시 콜라이더가 아니라 그냥 표준 콜라이더도 해야하나 싶다 is Triggers : 이를 활성화하면 Cube가 바닥을 무시하고 그냥 쭉 떨어진다.


이 기능을 사용해서 다양한 방식으로 충돌시켜보자!

Updated: