Unity
[Unity] SuperQix 퍼즐 아케이드 게임 모작
SuperQix 모작 오늘은 고등학교 2학년 때 모작으로 개발하였던 프로젝트인 SuperQix의 개발 과정을 살펴보고, 어떤 기법을 사용했는지 자세히 알려주도록 하겠다. 우선 모작 프로젝트를 공개하기전에 게임에 대한 간략한 소개를 하자면, 게임 SuperQix는 1987년 3월, 타이토에서 최초 출시한 퍼즐 아케이드 게임으로서 플레이어가 보스, 몬스터 등을 피해 땅을 차지해가며, 스테이지를 클리어하는 방식이다. 나는 주로 게임을 개발할때 모작을 많이 하는 편으로 당시에도 어떤 게임을 모작할까 생각을 하다가 마침 퍼즐 장르의 게임을 개발하려고 했는데 유튜브에서 땅따먹기 게임인 SuperQix를 발견하고 바로 개발을 시행하기로 마음먹었다. 이 포스팅은 개발을 하고 거의 1년이 지난 시점에 작성하는 거라 설명..
[Unity] 쿼터니언과 짐벌락 현상에 대해 알아보자
쿼터니언(Quaternion) 이란? 게임 오브젝트(GameObject)에 필수적으로 존재하는 Transform 컴포넌트에는 각각 위치(position), 회전(rotation), 크기(scale)를 구성하는 속성들이 존재한다. 여기서 우리가 유심히 봐야 할 점은 위치와 크기는 벡터(vector) 형식의 값을 가지는 반면 회전은 그 값을 표현하는 방식이 다르다 바로, 쿼터니언(Quaternion) 형식의 값을 가진다는 사실이다. 하지만 문제점은 쿼터니언 형식의 값은 사람이 한눈에 봐도 쉽게 알아볼수가 없는데 이러한 문제점을 해결하여 나온것이 바로 오일러 각도(Euler Angles)다. 오일러 각도는 총 3개의 각으로 직관적으로 "사람이 읽을 수 있는" 형식을 갖으며 180도 이상의 회전을 통해 한 방향..
[Unity] Attribute 에 대해 알아보자
Attribute 속성이란 유니티는 개발자가 작업을 좀 더 직관적이고 편하게 할 수 있도록 Unity 전용 Attribute 속성을 제공해주고 있다. Attibute는 유니티뿐만 아닌 .NET 라이브러리에도 전용 속성이 정의되어있다 오늘은 그중 몇 가지 유용한 Unity와 .NET 어트리뷰트를 알아볼 것이다. 우선 아래 표부터 살펴보자 이름 속성 이점 CreateAssetMenu 에셋 -> 메뉴 생성가능 주로 ScriptableObject 이용시 사용 ContextMenu 컴포넌트 -> 함수 실행 Debug, 동작 테스트에 활용 RequireComponent 컴포넌트 누락 방지 컴포넌트 설정 오류 방지 ExecuteInEditMode 스크립트 -> 에디터에서 실행 가능 에디터 모드에서도 Update Hi..
[Unity] 라이프 사이클(Life Cycle) 에 대해 알아보자
유니티의 생명주기 유니티에서는 사용자가 직접 호출하지 않아도 자동으로 호출되는 함수들이 있다 이것을 유니티 라이프 사이클(Life Cycle)이라고 부른다 이러한 라이프 사이클의 함수 호출 주기는 사용자 정의가 불가능하기 때문에 호출 주기에 대해 자세하게 알고 있다면 유니티를 다루는 데 있어 한 층 수월해질 것이다. 먼저 아래는 전체적인 유니티 공식 홈페이지에 나오는 스크립트 라이프 사이클 플로우 차트이다. 한눈에 봐도 뭔가가 많아 보이지만 모든 함수를 익혀두진 않아도 우리가 중요하게 여겨야 하는 함수들이 있다. 앞서 소개할 함수들은 자주 사용되는 함수들이니 집중해서 봐줬으면 한다 Reset : 에디터 모드에서 오브젝트에 스크립트가 붙여졌을 때 호출되며 기본값을 지정하기 위해 사용됨 Awake : 스크립..
[Unity] Delta Time 에 대해 알아보자
FPS(Frame Per Second)와 Delta Time에 관해 이번 글에서는 유니티 게임 엔진에서 자주 사용되는 Delta Time에 관해 알아보는 시간을 가져보자 먼저 유니티는 Update라는 함수에서 매 프래임(Frame) 마다 호출이 되는데 여기서 Delta Time은 이전 프레임과 현재 프래임 사이의 시간 차이를 의미한다 여기서 FPS의 개념을 이해할 필요가 있다 FPS(Frame Per Second)는 시스템의 초당 처리하는 프래임수의 개수이다 이러한 FPS는 처리하는 시스템에 따라 또는 컴퓨터 사양에 따라 달라질수가 있는데 간단하게 예를 들어 1초당 10 프레임을 처리하는 저사양 컴퓨터 A와 1초당 100프레임을 처리할 수 있는 고사양 컴퓨터 B가 있다고 가정해보고 1프레임당 2px씩 총..