본문 바로가기

게임개발

(8)
유니티로 배우는 게임 디자인 패턴 2판 책 설명 책 제목: 유니티로 배우는 게임 디자인 패턴 제2판 내용: 유니티를 기반으로 게임에 적용할 수 있는 디자인 패턴에 대한 설명 한줄평: 디자인 패턴이 다양하고 자세하게 적혀있어 정말 맛있다! 특징 이 책의 특징으로는 유니티에서 사용할만한 디자인 패턴을 아주 깔ㅡ끔하고도 친절하게 설명해주고 있습니다. 또한 코드를 마디 마디 설명해주기 때문에 이해가 빠르게 되었습니다. 개인 감상평 평소 혼자 게임개발을 하고 있어서 디자인 패턴은 싱글톤과 옵저버 패턴만 사용하고 있었고 다른 패턴들의 적용 법이나 원리는 공부를 제대로 한 적이 없었는데 아 책에서 나오는 디자인 패턴들을 보니 굉장히 편해 보이는 패턴들이 많이 보였습니다. 또한 개발을 할 때 들어보지 못한 이벤트 버스와 데커레이터, 퍼사드 패턴 등에 대한 ..
UGUI에 대해 알아보ㅈㅏ! UGUI란? Unity Game User Interface의 줄인말로 유니티에서 사용되는 GUI를 부르는 용어입니다. 하이라키창에서 우클릭을 해보면 UI라는 칸이 나오는데 이 UI의 항목별로 알아보는 시간을 가져보죠! UI요소 Canvas -UI의 전체적인 배치를 위한 영역입니다. Text -캔버스 위에 텍스트를 표시합니다. Image -캔버스 위에 원하는 이미지를 표시합니다. RawImage -캔버스 위에 원하는 이미지를 표시합니다. 주로 텍스쳐를 랜더링하기 위해 사용합니다. Button -캔버스 위에 클릭이 가능한 버튼을 생성합니다. 버튼을 클릭했을 시에 함수를 발동시키는 이벤트를 넣을 수 있습니다. Toggle -캔버스 위에 클릭이 가능한 토글 버튼을 생성합니다. 버튼을 클릭했을 시에 함수를 발동시..
모델링 파이프라인에 대해 알아보ㅈㅏ! 이번시간엔 모델링 파이프라인에 대해 알아볼겁니다! (강의를 보며 공부한걸 정리하였습니다.) 들어가기 앞서 UV란? 3D메쉬에 텍스쳐를 입힐 수 있도록 폴리곤들을 2D형태로 만들어준것을 말합니다 파이프라인 손맵 파이프라인 메쉬와 UV제작 zbrush를 사용하여 high poly와 low poly를 만들고 노멀맵과 AO를 추출하여 손맵의 베이스를 어느정도 만들고 하는 방법과 high poly를 만들지않고 바로 low poly를 만든 후 텍스쳐를 직접 그려나가는 방법이 있습니다. 요즘은 먼저 서술된 방법을 사용하는 사람들이 많지만 아직 실무에 있는 사람들중 두번째 방법을 고집하는 사람들도 있습니다. 페인팅 앱을 사용한 채색 (3D Coat) 완성된 low poly 위에 3D Coat나 C4D의 바디페인트등을 ..
(유니티) 싱글톤 패턴에 대해 알아보ㅈㅏ! 싱글톤이란? 싱글톤 패턴이란 하나의 인스턴스만 존재하며, 전역적으로 접근할 수 있는 클래스 디자인 패턴 입니다. 어떠한 상황에 사용하는가? 게임 매니저나 오디오 매니저 등 게임 내에 한개만 필요하고 여러곳에서 접근을 할 수 있도록 만들어야 할 때 사용합니다. 싱글톤 사용하는법 싱글톤은 크게 두가지로 나누어서 적용시킬 수 있는데 첫번째로 스크립트에 삽입하는것과 싱글톤 스크립트를 상속시키는 방법이 있습니다! public class GameManager : MonoBehaviour { private static GameManager instance = null; void Awake() { if(instance == null) { instance = this; } else { Destroy(gameObject)..
코루틴에 대해 알아보ㅈㅏ! 오늘은 코루틴에 대해 알아보도록 하겠습니다! 코루틴은 어떤 상황에 사용할까? 보통 코루틴은 특정 행동을 지연시킬 때 사용하게 되는데, Update에서 시간을 지연시키는 행동을 하게 되면 currentTime = Time.deltaTime 이라는 코드를 매 프레임마다 실행시켜줘야해서 비효율적인 코드가 됩니다. 이러한 상황속에서 코드의 비효율적인 부분을 고칠 수 있는 게 코루틴입니다. 코루틴은 어떻게 선언할까? 코루틴을 선언할 때는 앞에 IEnumerator를 붙여줘야 합니다. IEnumerator TimeCheckCoroutine() { //cooooode yield return new WaitForSeconds(3f); } 이후 코루틴 함수 내에 제어권을 돌려주는 yield return을 적어줘야 하죠...
유니티에서 명명규칙과 코딩 규칙을 알아보ㅈㅏ! 오늘은 명명규칙에 대해 알아보겠습니다! 명명규칙이란? 프로젝트를 진행할 때 개발 생산성과 운영의 효율을 높이기 위해 지켜야 하는 규칙입니다. 보통 팀에서 정한 규칙을 따른 거거나 정한 규칙이 없으면 언어 자체 규칙을 따르기도 합니다. 왜 필요한가? 예를들어 협업을 한다고 생각해봅시다. 협업을 하던 도중 변수명이 A, b, aAb, asdf, LancelotsFavouriteColour 등 알아볼 수 없는 변수명이 있었고 이 변수를 만든 프로그래머는 현재 연락이 닿지 않습니다. 이러한 상황이 일어나면 곤란하겠죠? 그렇기 때문에 명명규칙을 지키며 코드를 작성하는 겁니다. 명명규칙 카멜 케이스(camelCase) 여러 단어를 사용할 때 맨 처음 단어를 제외한 단어들의 앞글자를 대문자로 적습니다. 낙타의 봉우리..
똥 피하기 게임을 만들어보ㅈㅏ!(3. Instantiate를 사용하여 똥을 만들기, 게임 빌드하기) 이번 시간에 똥 피하기 게임을 완성하도록 하겠습니다! 시작하기 앞서 저희는 Prefab이라는 개념을 배우고 들어가겠습니다. Prefab이란? 재사용이 가능한 GameObject를 말합니다. 프리펩은 보통 같은 컴포넌트가 붙어있는 여러 오브젝트(적 몬스터, 나무, 건물 등)를 만들 때 사용됩니다. 왜냐하면 오브젝트를 만든 이후 수정이 필요할 때 Prefab의 경우에는 부모 프리펩에서 바꾼 값이 자식 프리펩에 적용되기 때문에 매우 편리하게 여러 오브젝트의 값을 바꿀 수 있습니다. 이제 직접 만들어봅시다! 만드는 방법은 간단합니다. 하이라키창에서 Poop 오브젝트를 프로젝트 창으로 끌어다 두시면.. 오른쪽 하이라키 창에 있는 poop의 아이콘이 파란색 상자로 변했으면 Prefab화 된 겁니다! 이번엔 Poop..
깃허브에 유니티 프로젝트를 올려보ㅈㅏ!(깃 설치하기) 오늘은 깃허브에 유니티 프로젝트를 올려볼 겁니다! 먼저 깃허브와 깃에 대한 설명을 하고 들어가 보죠. 깃(Git)은 로컬에서 관리가 되는 버전 관리 시스템입니다. 본인의 코드와 그 수정 내역 등을 기록하고 관리해줍니다. 깃허브(Github)는 이러한 깃을 클라우드 서비스로 운영을 해준다는 점이 다릅니다. 그렇기에 깃을 사용하는 것보다 코드의 공유도 간편하고 여러 사람들이 한 프로젝트에 참여할 수도 있습니다. 그렇다면 왜 귀찮게 코드의 버전을 관리하고 수정 내역 등을 기록하는 걸까요? 개발을 하다 보면 어느 부분에서 오류가 났는지 모르겠을 때 이전 커밋을 보며 변경점을 찾기 수월해지기 때문에 개발 시간이 단축됩니다. 다음으론 준비물을 다운로드하겠습니다! 먼저 깃을 다운로드할 건데 https://git-sc..