이번에는 플레이어와 땅을 만들어보자.
Scene을 2D로 놓고
Project뷰에서 Assets>Sunnyland>artwork>sprites>Player>idle에서 player-idle-1 파일을 클릭하면
Inspector뷰에서 player의 속성을 볼 수 있다.
여기에서 주의 깊게 봐야할 점은 픽셀로 된 이미지는 Filter Mode = Point(no filter), Compression =None
으로 설정해 주어야한다.
Hierarchy창에서 Player-idle을 클릭하고 Inspector창으로 가보자.
화면에 플레이어가 보이지 않는다면 Sprite Renderer> Additional Settings> Order in Layer에서 1로 줘보자.
background와 player-idle 스프라이트가 같은 위치(z=0), 같은 Layer(Default)에 있기 때문에 겹쳐 있어서 보이지 않는다.
이럴때 레이어안에서 순번을 정해주는데, 숫자가 높을 수록 화면에 더 잘 보인다.
이제 Player가 배경에 비해 너무 작기 때문에 Transform>Scale에서 x,y값을 변경하여 크기를 키워보자.
보통 게임 오브젝트가 만들어지면 transform을 position을 0,0,0으로 설정한다.
Scale은 x,y 5씩 줘보자. 2D의 경우에는 z축에 대한 값이 없기 때문에 스케일을 높여도 z축으로 늘어나지 않는다.
이번에는 바닥을 만들어보자.
Project뷰에서 Assets>Sunnyland>artwork>Environment>tileset-> 세모를 클릭하면 처음에 나오는 스프라이트가 있다.
Scene으로 드래그해보자. 드래그 한 뒤에 스프라이트가 안보일 수 있다. 위치와 크기를 정해주자.
tileset-sliced 게임오브젝트 역시 position.Rotation =>x,y,z값을 0,0,0을 줘보자.
position.Scale => x,y값을 10,10 줘보자.
플레이어가 보이지 않아서 위치를 조금 조정해보자.
position.Rotation =>y값을 -2로 정해보면 플레이어 아래에 위치한것을 볼 수 있다.
이 상태에서 플레이 버튼을 눌러보자. 플레이 버튼은 중간에 있다.
플레이버튼을 누른 순간!!
아무 일도 일어나지 않는다.
우리가 생각했을때는 땅이있고 동물이 있으면 동물이 움직여야는데 아무일도 일어나지 않는다.
마치 무중력 상태와 같이 움직이지 않는다.
그렇다면 이제 오브젝트에 중력을 넣어보자.
유니티를 사용하는 중요한 이유 중에 하나가 바로 물리 엔진을 사용할 수 있다는 점이다. 본격적으로 물리 엔진을 사용하기 위해서는 게임오브젝트가 물리엔진을 적용할 개체라는 것을 구성요소로 추가해주어야한다.
player-idle을 클릭하고 Inspector에 Add Component를 클릭하여 rigidbody를 추가해보자.
2D에서 사용하므로 Rigidbody 2D를 설정한다.
참고로 rigidbody란
강체(剛體, Rigid body)란 물리학에서 형태가 고정되어 변하지 않는 물체를 가리킨다. 강체는 외력이 가해져도 모양이나 크기가 변형되지 않는다. 실제 세계에서 모든 물체는 외력을 가함에 따라 조금씩 모양이나 크기가 변형될 수 있으며 따라서 강체라고 할 수 없지만, 변형되는 정도가 무시할 수 있을 만큼 작다면 어떤 물체를 강체로 가정하기도 한다. 물체의 운동을 분석할 때에 보통 물체를 강체로 가정한다. - 위키백과
물리학에서 사용하는 용어인가보다.
물체의 운동을 분석하기 위해서 Rigidbody 2D 컴포넌트를 추가했다.
Rigidbody 2D의 자세한 설명은 '?'를 누르면 유니티 메뉴얼로 이동해서 자세히 볼 수 있다.
플레이 버튼을 눌러보면 플레이어는 중력을 받아 밑으로 떨어지고 있다.
여기에서 Gravity Scale을 보자. 1로 정해져있는 것을 볼 수 있다.
Edit> Project Settings> Physics 2D에서 Gravity x:0, y:-9.81을 볼 수 있다.
우리가 중력을 생각하면 아래 방향(-y)으로 중력상수 9.81이다.
Gravity 값을 x:9.81, y:0으로 주면 플레이어가 받는 중력은 어느 쪽인가?
오른쪽으로 끌어당겨지는 것을 볼 수 있다.
지구의 중력은 9.807m/s^2이고, 달은 1.62m/s^2이다. 중력을 변경중력을 변경하여 물체가 떨어지는 속도를 관찰해보자.
관찰을 다했으면 Gravity x:0, y:-9.81으로 원래대로 되돌리자.
다음편에 Rigidbody와 물리 짝꿍인 Collider에 대해서 알아보자.
Unity Basic ch. 07] 유니티와 물리학(2) _Collider (0) | 2020.05.04 |
---|---|
Unity Basic ch. 05] 게임오브젝트 & 구성요소 (Component) (0) | 2020.05.04 |