목록이동 (4)
DNF LOVE

1. Collider, Rigidbody 우리는 이전에 위와 같은 상태로 포스팅을 끝마쳤다. 이 상태로 ctrl+p를 누르거나 실행 버튼을 누르면 어떻게 되는가? 우리가 원하는 모습은 플레이어가 바닥에 붙는 모습을 상상하였는데 아쉽게도 우리가 모양을 잡아준대로 오브젝트들이 존재한다. 그렇다면 플레이어가 바닥에 붙이게 하기 위해선 어떻게 해야 할까? 정답은 '충돌'과 '물리엔진'이다. 앞전 포스팅에서 Unity에서 물리엔진은 'Rigidbody'라고 배웠는데 3D용과 2D용이 따로 있다. 물리엔진이 필요한 친구는 플레이어 뿐이므로 플레이어에게 Rigidbody2D를 붙여주도록 하자. 붙이고 게임을 실행하면 어떻게 되는가? 플레이어가 무한으로 바닥으로 떨어진다. 이를 방지하기 위해선 무엇을 해야할까? 정답은..

이전 까지 우리는 3D에서 GameObject가 사용자 입력에 따라 움직이는 것을 구현했었다. 그럼 2D에서 움직이는건 어떻게 구현해야 할까? (사실 이전에 했던것과 동일하지만, 다음 튜토리얼은 UI를 다루는 것이기 때문에 편하게 2D로도 구현하도록 하겠다.) 우선, 3D프로젝트를 2D프로젝트로 바꾸어보도록 하자. 1. 3D프로젝트 -> 2D프로젝트 Edit -> Project Settings -> Editor -> Default Behaviour Mode 에서 3D를 2D로 변경해주면 된다. 좌표계를 3D에서 2D로 변경해준다. 그리고 ctrl + n을 눌러 새로운 Scene을 만들면 skybox가 비활성되는 것을 확인할 수 있다. ctrl+s를 눌러 'Sample2DScene'라는 이름의 새로운 씬을..

하하하 오래 기다렸다. 드디어 사용자 입력에 따른 Object 이동을 설명하도록 하겠다. 두 가지 방법을 소개하도록 하겠다. 하나는 이전 포스팅에서 다뤘던 키보드 입력(GetKey())에 따른 구현 방식과, Unity에서 지원하는 프로젝트에 대한 입력 축과 게임에서의 동작을 정의한 것을 이용한 구현 방식이다. 우선 Object의 원활한 이동을 위하여 Plane의 크기를 10, 1, 10 으로 수정해주었다. Player 오브젝트에 붙여져 있는 PlayerControler 스크립트를 열어 speed 라는 실수 타입의 전역 변수를 선언해 주도록 하자. speed를 수정하게 된다면 우선순위는 초기화 < 인스펙터창 이 된다 또, 물리엔진인 Rigidbody와 이동거리를 담을 vector3 변수도 선언해주도록 하자..