10강) 적 기체 제거오늘은 적 기체 제거에 대해서 알아보겠습니다.원래는 플레이어의 HP를 GUI에 나타내고 그 변화를 관찰하는 것 까지 하려고 했으나 너무 내용이 많아져서 이번 시간에는 적 기체 제거만 하려고 합니다. 지난 시간에 여기까지 했을 겁니다.여기서 이어서 진행하도록 하겠습니다. 적의 정보를 표현하기 위한 클래스 작성(이름은 항상 자기 마음대로 라는 것, 하지만 거기에 따른 코드 수정은 알아서 하셔야합니다.)(저는 Enemy_Data라는 이름으로 작성하였습니다.)먼저 새로운 C# 스크립트를 하나 작성하여 봅시다.지금 작성하는 클래스는 적의 정보를 표현하기 위한 하나의 틀이라고 생각하시면 됩니다. 새롭게 C# 스크립트를 작성하면 기본적으로 몇가지 작성되어 생성이 됩니다.(void Start, v..
09강) 충돌 처리오랜만에 쓰네요. 그간 많이 바빠서 말이죠... 지난 시간에는 미사일을 발사하였습니다.오늘은 이 미사일들이 적 기체에 충돌하는 것을 처리해보겠습니다.지금 당장 적기체까지 만드는것은 아니고 간단한 Sprite에 충돌 처리구현까지만 하도록 해보겠습니다. 유니티에서 충돌 인식) Collider유니티에서 충돌을 인식하는 방법은 "Collider"를 이용합니다. 간단하게 2D가 아닌 3D로 입체적이게 확인하여 봅시다.일단 2D를 해제해서 3D 모드로 바꿉니다. 그리고 "3D Object - Cube"를 하나 만들어줍시다. 그렇게 생성된 큐브를 선택하면 주위에 "초록색 선"이 그려진것을 볼수 있습니다.이것이 바로 "Collider" 인데요.큐브의 "Inspector"로 가서 보면이렇게 "XXX C..
08강) 미사일 발사2지난 시간에는 일반적인 방법으로 "Instantiate 함수"를 이용하여 미사일을 생성하고 "Destroy 함수"를 사용하여 미사일을 제거하였습니다.오늘은 조금 다른 방법인 "메모리 풀링"을 사용한 미사일 발사를 사용해봅시다. 메모리 풀링(Memory Pooling)우리는 무슨 엔진을 사용하여 게임을 만들고 있을까요? 바로 "유니티" 입니다.그리고 우리는 어떤 언어를 사용하고 있나요? 바로 "C#" 입니다.C++(다른 컴퓨터 언어)로 게임을 만들게되면 메모리 관리를 프로그래머가 직접적으로 관여를 하여 사용했던 객체가 필요없어지면 메모리 공간에서 반환시켜줘야 합니다.이렇게 되었을 때 장점은 메모리를 원할 때 확보해줄 수 있다는 것이죠. 하지만 그 만큼 메모리 관리를 철저히 해줘야 한다..
07강) 미사일 발사1지난 시간에는 비행기를 움직이는 것을 해보았습니다. 이번 시간에는 미사일을 생성하여 발사하여 볼것입니다. 일반적인 미사일 발사이번 7강에서는 "일반적으로 쉽게 사용하는 미사일 발사"에 대해서 알아볼것입니다. 일반적으로 쉽게 사용하는 미사일 발사의 경우에는 "Instantiate 함수"를 사용하여 미사일 발사 키를 누르는 즉시 미사일 오브젝트를 실시간으로 생성하는 방식을 사용하게 됩니다. Instantiate 함수original을 position위치에 rotation각도로 생성을 합니다. 이 Instantiate 함수를 사용하여 오늘의 7강을 이어가겠습니다. 미사일 준비하기지난시간에 비행기를 움직이기 전에 비행기를 먼저 준비했듯이, 미사일을 사용하기 전에 미사일을 먼저 준비합시다. 따..
06강) 비행기 생성 및 움직이기이번 시간에는 유니티에서 직접 비행기를 생성해보고 움직여보는 것을 해보겠습니다. 미리 새로운 프로젝트를 생성하고 시작합시다. 비행기를 생성해보자) 이미지 준비비행기를 생성하기 전에 먼저 이미지를 준비해야합니다. 이미지? 왜? 2D 프로젝트에서는 모든 오브젝트는 "sprite"를 기준으로 만들게됩니다. 이 sprite는 이미지를 입혀서 사용하게 되죠. 이때 이미지는 "자신이 직접 만들"거나 "Free License"를 이용하는 것이 좋으며, 이미지 소스를 "유료로 사서" 사용해도됩니다.(즉, "라이센스"를 확보해야합니다.) 라이센스 확보? 왜?컴퓨터에서는 "라이센스"가 정말 중요합니다. (저작권)컴퓨터에는 라이센스가 무척 많으며, 라이센스가 적용된 소스를 라이센스 규칙에 맞..
05강) 게임의 요소 결정 및 구상이번 시간에는 게임만드는데 정말로 중요한 시간입니다.바로 게임의 "재미", 그리고 "어떻게 만들 것인가"에 대한 이야기이죠. 그런데 우리의 경우에는 정말 간단합니다. 왜냐하면 게임의 장르가 이미 정해져 있고(슈팅), 기본적인 가이드라인은 제가 제시할것이기 때문이죠. 하지만 자신이 나중에 혼자 혹은 여럿이서 게임을 만들겠다고 한다면 꼭 필요한 부분입니다. 게임의 주제(스토리) 결정지금 우리의 경우에는 딱히 주제(스토리)가 분명하지 않아도 됩니다.그냥 "단순한 비행기 슈팅게임"이기때문이죠. 그런데 사실 "게임의 주제"를 결정하는 것은 "스토리 있는 게임"에서는 매우 중요한 요소입니다. 어떤 스토리냐에 따라서 즐기는 사람들이 달라지고(고객층) 게임 개발 방향이 달라지기 때문이..
04강) C# 프로그래밍 기초3지난 시간에 이어서 마지막으로 C# 프로그래밍의 기초에 대해서 더 알아봅시다. C#) 메소드(method)C언어에서는 함수라고 하고, C++과 C# 그리고 Java같은 객체지향형 프로그램에서는 메소드라고 일컫는 겁니다.유니티에서 기본적으로 스크립트를 만들게 되면 using System.Collections; using System.Collections.Generic; using UnityEngine; public class NewScript : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { } } 이렇게 "void..
03강) C# 프로그래밍 기초2지난 시간에 이어서 C# 프로그래밍의 기초에 대해서 더 알아봅시다. C#) 모든 문장의 끝은 세미콜론(;)모든 구문의 끝에는 세미콜론이 있어야합니다.컴퓨터 컴파일러가 구문의 끝을 판단하기 때문이죠. C#) 열렸으면( 닫아야죠)무슨 말이냐 하면이렇게 열리고 닫히는게 "쌍"을 이뤄야 한다는 사실!! C#) 관계 연산자참과 거짓 즉, 옳고 그름과 상당히 관련 깊은 연산자입니다.(특히 bool과 연관성이 깊습니다.) 연산자 기능 Ex) A > B A가 B보다 큰가? = B A가 B보다 크거나 같은가? == Ex) A == B A와 B가 같은가? != Ex) A != B A와 B가 같지 않은가?(다른가?)저 조건을 만족을 한다면 "true", 만족하지 않으면 "false"를 반환하게..
02강) C# 프로그래밍 기초1사실 지난 시간에 "다음 시간에는 ... 씬을 생성하고 비행기까지 생성하여 움직이는 것을 ..." 이라고 말했었습니다. 그런데 생각해보니 "비행기 움직이는 것"은 C#을 이용하여 프로그래밍을 해야하기 때문에 먼저 C# 프로그래밍 기초에 대해서 알아봐야 할 것 같아서 단원을 바꾸었습니다. 왜 C#인가?유니티에서 주로 사용하는 언어는 "자바스크립트"와 "C#" 입니다. 그런데 필자는 왜 C#을 이용하여 하려는 걸까요? 첫번째 이유는 저는 자바스크립트를 잘 모릅니다. 두번째 이유는 저는 C#을 어느정도는 압니다. 세번째 이유는 자바스크립트로 작성을 하게 되면 결국엔 기술적인 측면에서 C#으로 다시 오게 된다고 하더군요. (유니티 게임 개발자들의 말) 네번째 이유는 C#이 조금 더..
01강) 유니티5의 프로젝트 생성 및 기본 UI드디어 첫 강의입니다.첫번째인 만큼 프로그램이 어떻게 생겼는지에 대해서 먼저 알아봐야할것만 같습니다.유니티를 실행시키시면 Projects가 아마 비어있을 겁니다.왜냐하면 처음 실행시켰기 때문이죠.고로 프로젝트를 하나 생성하기 위해 오른쪽 상단의 "NEW"를 누릅니다. 원하는 프로젝트 이름과 경로를 설정하고 "2D"를 선택하고 "Create project"를 합니다.왜냐하면 2D 게임을 만들것이기 때문입니다. 첫 레이아웃 화면입니다.먼저 레이아웃에 대하여 간단하게 설명드리겠습니다. (안보이시면 클릭해서 "원본보기"하면 잘보입니다.) 그런데 사실 이 레이아웃으로 게임을 개발하기가 쉽지만은 않습니다.(쉬울수도...) 그래서 예전에 Unity 4시절에 유니티 공식 ..