본문 바로가기

Unity

(12)
3D RPG - 플레이어의 움직임(Player Controller) 이번에는 앞서 Input System 과 Player Status 를 이용해서 플레이어 이동을 구현하려고 합니다.플레이어 움직임에 앞서 카메라의 움직임도 같이 다뤄볼 것입니다. 카메라 시점은“디아블로”라는 게임처럼 위에서 대각선으로 내려다보는 쿼터뷰(Quarter view) 시점입니다.키보드로 이동하고 마우스로 원하는 대상을 바라보게 하는 *TPS 게임에서 사용되는 플레이어 조작방법을 구현했습니다.* TPS - Third-Person Shooter의 줄임말로 게임상의 플레이어가 보는 시점이 아닌, 플레이어를 보는 시점 즉, 3인칭 관찰자 시점으로 플레이하는 비디오 게임 중 슈팅 게임 장르입니다.Player - 플레이어는 플레이어 캐릭터의 위치와 충돌을 계산하는 오브젝트입니다. - 플레이어의 매쉬를 담당하..
3D RPG - 플레이어 입력 (Input System) New Input SystemUnity는 두 개의 별도 시스템(이전 시스템과 최신 시스템)을 통한 입력을 지원합니다.이전 Input System은 플랫폼을 변경하여 게임을 출시하려면 입력과 관련하여 작성 했던 소스코드들을 다시 고쳐야 하는 번거로움과 입력 키들이 늘어날수록 Update() 함수 크기가 방대해져 소스코드가 지저분해지는 문제점도 존재했습니다.이러한 문제점으로 새로운 Input system을 사용했습니다. 새로운 Input System은 기존 입력 방식인 Update()에서의 작업이 이루어지지 않고, 특정 하드웨어(button, axis...)을 참조하는 대신 작업에 해당하는 이벤트에 의해 트리거 됩니다. 스크립트 작업을 시작하기 전에, 생성했던 Input Action Asset에 들어가 Ge..
3D RPG - 플레이어 정보(Player Status) 캐릭터 구현하기- 데이터와 관련된 내용들은 PlayerStatus- 입력 기능들은 Input Manager- 플레이어의 컨트롤에 관한 내용들은 PlayerController- 플레이어의 스탯들을 관리하는 내용들은 PlayerEntity- 플레이어의 스탯들의 종류들은 PlayerOwnedStates이렇게 각각 분리하여 작성했습니다. - PlayerStatus플레이어의 정보는 게임 내에서 존재하는 Entity들과 겹치는 정보들을 가지고 있는 abstract(가상 함수)인 BaseEntityStatus 스크립트를 상속받고, PlayerStatus에는 플레이어만 존재하는 정보들을 추가했습니다.BaseEntityStatus.cspublic abstract class BaseEntityStatus : MonoBeh..
3D RPG - 프로젝트 시작 프로젝트를 시작하기 위해 다음과 같이 준비했습니다.게임 기획하기처음으로 유니티 엔진으로 제작했던 게임이 2D RPG 프로젝트였습니다. 그래서 이번에는 유니티 엔진 역량과 게임 개발의 다양한 측면을 깊이 이해하기 위해 3D RPG 프로젝트로 선정했습니다. 우선 처음 개발하는 개인 프로젝트이다 보니 어떻게 구현해야 할지 많이 고민 했습니다. 그래도 앞서 2D 프로젝트를 만들어 본 경험이 있어 틀부터 잡기 위해 간단하게 기획하여 만들어야할 기능들을 생각해봤습니다. 개발하기 전 제가 처음 기획했던 정보들입니다. 캐릭터의 기능들.   ㄴ Input        ㄴ Move(WASD), Run(Ctrl), Jump(SpaceBar), Interaction(F), Inventory(I), Equip(E), Attac..