유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발
유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발
수강정보
(0개의 수강평)
55명의 수강생
3개월 할부시
월 25,666원77,000원
지식공유자 : UDevApp
120회 수업 · 총 10시간 47분 수업
기간 : 평생 무제한 시청
수료증 : 발급 강의
수강 난이도 : 초급

이 강의는

유니티의 기본적인 기능 및 메모리 동작을 이해할 수 있으며, 프로토타입이 아닌 실제 한 사이클이 돌아가는 게임을 만드는 방법을 배울 수 있습니다.

이런 걸 배울 수 있어요

  • 유니티 동작의 메모리 구조
  • 유니티로 슈팅게임을 만드는 방법
  • 프로토타입이 아닌 실제 게임을 만드는 방법

비전공자 & 입문자를 위한 게임 개발!
유니티 + C#의 구조와 원리를 함께 이해해보세요. 

강의 소개 📝

유니티(Unity)의 C#을 배우고 나서 게임을 만들고 싶은 입문자들에게 가장 필요한 강의가 무엇일지 생각해 보았습니다. 바로 유니티의 내부적인 기능들과 실제 코드와 메모리가 어떤 관계를 이루는 것을 아는 것입니다. 큐브를 하나 만들어도 캐릭터를 하나 만들어도 실제 내부적인 메모리 동작을 모르면 더 이상 게임 제작은 불가능합니다. 그냥 공이 통통 튀는 프로젝트만 만들 수 있을 뿐입니다. 그러한 문제를 해결하기 위해 이 강좌를 만들었습니다.

그래서 다른 게임 강좌와 다르게 유니티로 게임을 만드는 도중에 유니티 기능과 C# 문법을 같이 학습합니다. 기능의 사용에만 초점을 맞추고 있지 않습니다. 기능 하나가 내부적으로 내가 만드는 코드와 어떤 관계를 맺는지 실제 클래스와 인스턴스와 메모리가 유니티 기능과 내 코드 사이에서 어떻게 동작하는지를 설명합니다. 굳이 어려운 문법을 사용하지 않아도 게임 제작은 가능합니다. 딜리게이트나 인터페이스 다중상속이 가능한 캐릭터 클래스를 만드는 작업은 여러 게임을 쉽게 제작하고 올려보고 나서 해야 할 일입니다.

• 계층뷰에 있는 게임오브젝트의 메모리가 어떻게 존재하는지 
• 왜 드래그를 해서 오브젝트를 연결하는지 
• 왜 Time.deltaTime을 벡터에 곱하는지 
• 왜 게임 프로그래밍에서 벡터3이 있는지 
• 리지드바디와 충돌체가 왜 나뉘어 있는지에 대한 원리와 이유에 대해서 설명합니다.

이런 내용들은 다른 강의에서는 1분 정도 설명하고 끝내는 내용입니다. 그 강의는 실제 개발자를 위한 강의이기 때문입니다. 하지만 게임 개발에 입문하는 비전공자, 비전문가에게는 다른 강의가 필요합니다. 왜 유니티에 이러한 기능이 있는지에 대해 이해해야 합니다. 

그래서 이 강의에서는 게임제작 외에 유니티의 기능을 C#과 같이 이해하고 실습하는 내용이 강의 분량의 절반을 넘어갑니다. 게임은 중반 이후에 나옵니다. 원리를 알기 전까지 프로그래밍을 작성할 수 없기 때문입니다. 게임 개발만 있는 강의를 배울 수 있는 사람들은 실제 개발자들 뿐입니다. 

비전공자들과 입문자들이 어떻게 게임을 만들 수 있을지에 대한 내용을 알려드리기 위해 이 강의를 제작했습니다.

왜 배워야 하는지 ✒️

본 강의는 게임개발에 대한 내용을 비전공자들과 입문자들의 입장에서 어떻게 접근할 수 있는지 알려주는 강의입니다. 그렇다고 쉽지만은 않습니다. 예를 들어 모노비헤이버에 있는 게임오브젝트 변수가 동작하는 원리 같은 것을 설명하기 위해 소유참조, 역참조, 상호참조의 예제를 설명하고 나서 게임오브젝트 변수의 동작 원리를 설명합니다. 비슷한 구조의 작은 예제를 소개하는 것을 보시면 이걸 왜 해야 하는 것일지에 대한 궁금증이 들 수도 있습니다. 하지만 프로그래밍은 컴퓨터의 내부 원리를 이해하고 컴퓨터에 말을 거는 작업입니다. 내 말대로 컴퓨터가 동작하기 위해서는 클래스 바깥으로 빠져나와 저희가 사용할 수 있는 변수와 함수가 어떻게 동작하는지를 알아야 합니다. 다른 사람에게 말을 하기 위해서 다른 사람의 생각을 역지사지하는 것과 똑같습니다.

그리고 그것이 가능해야 디버깅이 가능해집니다. 프로그래밍은 원래 고난과의 싸움입니다. 얼토당토하지 않은 말도 안되는 오류가 나올 수 있습니다. 이러한 문제를 해결하기 위해서는 기초가 필수적입니다.

입문자분들이나 초보자분들의 경우에는 기초 C#(Part.2에 해당하는 내용)을 모르면 이 강의의 이해가 불가능합니다. 하지만 이 강의를 배우고 나서 내가 비슷한 예제를 만들 수 있게 되면 실제 게임을 만드는 두려움이 사라질 것입니다. 

  • 게임을 만들기 전에 원리부터 학습합니다. 원리를 알면 응용이 가능합니다. 이해를 하지 않고 따라하기만 하면 게임을 만들 수 없습니다.
  • 강의당 10분의 학습시간을 넘지 않습니다. (넘는 강의도 있습니다만 넘어도 된다고 생각하기에 그렇게 제작했습니다. 혹시길어서 학습에 방해가 된다고 생각하면 나누거나 다시 찍도록 하겠습니다.)

 

이 강의에서 배우는 것들 ✏️

  • 유니티의 기능을 사용하여 필요한 기능을 추가하는 방법을 배울 수 있습니다.
  • API 문서를 보는 방법을 배울 수 있습니다.
  • 유니티의 기능이 내부적으로 어떻게 동작하는지를 설명합니다. 
  • 작성하는 코드의 메모리와 원리에 대해 설명합니다. 
  • 내가 작성한 코드와 유니티의 기능들에 대한 메모리에 대해 설명합니다.

 

강의 특징 💡 

유니티의 메모리구조를 살펴보면서 문법을 배우고 실제 게임을 개발하는 것을 목표로 합니다. 간단한 슈팅게임이지만 실제 스토어에까지 올리는 작업을 실행할 것입니다.

이 강의를 듣고 나면 간단한 게임을 개발할 수 있게 됩니다. 다만 입문자의 경우 길게 잡고 하루 30분씩 꼭 연습이 필요합니다. 유니티에 접근하는 초보자들이나 비전공자들에게 큰 도움이 될 것으로 생각합니다.

현재 강의는 약 8시간 분량으로 짧습니다만 강의수가 100개 가까이 됩니다. (계속 추가예정)
짧은 강의로 짧게 공부하고 연습하면 하루 30분으로 빠르면 30일 길면 3개월에 유니티 C# 프로그래밍의 기초를 학습할수 있습니다. 하지만 비전공자들은 학습을 느리게 하는 것이 좋습니다. 프로그래밍은 언어이기 때문에 장기기억으로 쌓아야 자신이 직접 프로그래밍을 할 수 있습니다. 

  

섹션마다 간단한 소개 📖

섹션 0. C# 복습하기

  • 전공자가 유니티에 접근하기 위해 유니티를 알아보고 C#을 복습하는 단계입니다.
  • 기존 학습자의 경우 건너뛰셔도 좋지만 복습 차원에서 보시는 것을 추천합니다.
  • 특히 객체지향 1과 객체지향 2의 강의는 꼭 들어주세요.

섹션 1. 게임개발과 유니티

  • 실제 유니티의 기능들이 어떻게 메모리가 동작하는지를 살펴봅니다.
  • 게임오브젝트와 컴포넌트의 관계를 알아보고 실제 내부동작을 테스트합니다.
  • 내부적으로 어떻게 메모리에서 동작하는지 알면 프로그래밍에 대한 두려움이 사라집니다.

섹션 2. 클래스의 포함관계(기존 예정이 없던 강의로 추가하였습니다)

  • 클래스는 같은 클래스라도 포함관계를 가집니다. 
  • 클래스중에 누가 메인이고 누가 서브인지를 알면 둘 다를 확실하게 관리할 수 있습니다.
  • 소유참조와 역참조, 상호참조를 배우고 이것이 유니티에서 어떻게 동작하는지 살펴봅니다.
  • 유니티의 API를 보는 법을 학습합니다. 익숙해지면 API만 보고도 개발이 가능합니다.

섹션 3. 기본문법과 유니티

  • C# 문법이 유니티에서 어떻게 사용되고 어떤식으로 제공되는지 알아야 합니다. 
  • 스태틱과 일반화 프로그래밍을 유니티 관점에서 알아봅니다. 
  • 키보드의 입력과 마우스의 입력을 알아봅니다.
  • 문법이 유니티에서 사용되는 모습을 이해하면 유니티 클래스를 보는 관점이 달라집니다.

섹션 4. 물체의 이동

  • 벡터3가 그냥 벡터3가 아닙니다. 사용되는 곳마다 위치, 방향, 속도, 크기, 각도 등의 다른 의미로 사용됩니다. 벡터3가 그냥 벡터라고 생각하면 안됩니다.
  • 물체의 이동과 속도를 아주 쉽게 알려드립니다. (왜 속도라는 것이 있는지를 고민하였습니다.)
  • 왜 이동 시에 벡터를 곱하고 시간을 곱하고 더하는 과정을 거치는지 명확하게 알려드립니다.

섹션 5. 물체의 관리와 충돌

  • 충돌체와 강체를 적용하기가 왜 까다로운지를 설명합니다. 
  • 소유하고 있는 물체를 어떻게 해야 관리할 수 있는지를 설명합니다.
  • 유니티에서 적용한 내용을 실제 코드로 동작시키면 어떻게 되는지를 비교하여 유니티의 내부구조를 알아봅니다.

섹션 6. 슈팅게임 프로토타입 만들기 (기존 예정에 없던 강의로 난이도 조정을 위해 추가하였습니다)

  • 프로토타입을 만들고 실제 게임을 만들기 위해 준비합니다. 
  • 해상도를 하나로 고정하고 픽셀퍼유닛과 카메라 사이즈를 정의하는 방법을 알아봅니다.
  • 캐릭터와 적과 배경을 움직이고 간단한 프로토타입의 게임을 개발합니다.

섹션 7. 슈팅게임 만들기

  • 실제로 싸우고 모으고 업그레이드하여 간단한 성장과 적의 출현을 구현하는 "한 싸이클"이 있는 게임을 제작합니다.
  • 캐릭터의 업그레이드를 적용합니다.
  • 적 캐릭터가 스테이지에 따라 강해지는 내용을 추가합니다.
  • 보스 캐릭터를 적용합니다. 

섹션 8. 게임의 UI

  • 플레이하는 것만이 게임이 아닙니다. UI는 프로그래밍의 다른 한 축입니다. 
  • 캔버스의 좌표계를 알고 각각의 UI를 추가합니다. 
  • 게임의 화면을 구성합니다.

섹션 9. 스토어 업로드

  • 게임 외에 어떤 기능이 필요한지 알아보고 구현합니다.
  • 광고 기능을 게임에 연동합니다. 
  • 스토어에 업로드 전 준비사항과 주의점을 알아봅니다.

 

여기서 다루는 툴 🧰 

이 강의에서는 학습을 하시고 꼭 실습을 하시는 것이 좋습니다. 특히 비전공자는 평소에 프로그래밍으로 일을 하지 않기 때문에 그냥 보기만 해서는 절대 프로그래밍을 습득할 수 없습니다.
이해를 하시고 나서 꼭 실습을 해야 합니다. 

 

예상 질문 Q&A 🙋🏻‍♂️ 

Q. 비전공자도 들을 수 있나요?
A. 네, 비전공자와 전공자 모두를 위한 강의입니다. 단 비전공자나 입문자의 경우 인프런에 있는 선수과목인 Part2 의 C# 프로그래밍 강좌" 를 듣고 오셔야 들으실 수 있습니다. 이 강의의 0장에 있는 C# 복습은 전공자를 위한 내용입니다. 

Q. "슈팅게임 개발 강의"를 배우면 무엇이 좋은가요?
A. 원리를 알아야 응용이 가능합니다. 프로그래밍을 하는 것만이 아닌 오류를 잡을 때도 원리를 알아야 응용을 할 수 있습니다. 프로그래밍을 할 때 오류가 생긴다고 해서 다른 누군가가 문제를 해결해주지 않습니다. 실제 게임을 만들고 한 싸이클을 돌려보면 더 많은 것들을 할 수 있습니다. 

Q. "슈팅게임 개발 강의"를 들으면 어떤 일을 할 수 있나요?
A. 유니티로 게임을 만드는 시작점에 서게 될 수 있습니다.  또한 유니티로 다른 프로그램을 만들때 큰 도움이 됩니다. 원리를 알수 있기 때문에 응용이 가능합니다. 즉 간단한 게임이지만  게임을 만들 수 있는 실력을 가지게 될 수 있습니다. 또한 실제적으로 업로드 가능한 게임을 만들어 업로드까지 하는 실무적인 내용까지도 포함하기에 스마트폰 게임개발에 필요한 실제적인 팁을 얻을 수 있습니다.

Q. 이 강의만의 특별한 장점이 있을까요?
A. 처음 볼 때는 어려울 수 있습니다. 하지만 그 단계를 넘어가서 중반 이상 가게 되면 원리에 대한 개념이 생깁니다. 내부 구조를 알면 컴퓨터가 어떻게 돌아가는지 예상할 수 있습니다. 그렇게 되면 프로그래밍뿐만 아니라 디버그 실력도 향상됩니다. 경력자가 왜 경력자일까요? 디버그를 잘 해서 경력자인 것입니다. 디버그를 잘하는 경력자의 관점을 알려드립니다. 99%를 완성해도 오류가 있으면 그 게임은 성공하기 어렵습니다. 그리고 오류를 해결할 수 없다면 그것만큼 힘든 일이 없습니다. 이런 상황을 예방하기 위해 원리 그리고 메모리에 대한 공부가 필요합니다. 

이전 강의 보기 📼

유니티(Unity)로 시작하는 게임개발:
Part 1. 컴퓨터 구조 입문

비전공자도 쉽게, 컴퓨터가 동작하는 기본 원리를 이해해보세요.
유니티(Unity)로 시작하는 게임개발:
Part 2. C# 프로그래밍 입문

유니티 게임개발의 뼈대를 쌓아주는 첫 C# 프로그래밍!

도움 되는 분들

  • 기초 C#을 이제 막 학습하신 분
  • 유니티 오브젝트의 메모리 동작원리가 궁금하신 분

선수 지식

  • 구조지향과 관련되는 C# 프로그래밍 언어
  • C# 프로그래밍 Part1

지식공유자 소개

안녕하세요. UDevApp 의 최형선이라고 합니다. 

무엇인가를 만들어낸다는 것은 정말로 행복한 일입니다. 

세상에 나의 제품이 나올 때의 느낌은 스티브잡스가 느낀 그것이나 

여러분들이나 저와 다르지 않다고 생각합니다. 

여러분들에게 그러한 감정을 드리는 사람이 되고 싶습니다. 

블로그와 네이버카페와 유튜브에도 많이 찾아와 주시길 바랍니다.

.

https://bit.ly/2CrJxkZ (와디즈 바로가기)

http://blog.naver.com/siwoo2406(블로그 바로가기)

https://cafe.naver.com/ultimategunz(카페바로가기)

https://www.youtube.com/user/ChoiHyungSun/(유튜브 바로가기)

감사합니다. 

교육과정

모두 펼치기 120 강의 10시간 47분
섹션 0. C# 복습하기
11 강의 61 : 49
C# 복습 인트로
01 : 14
유니티의 뷰
03 : 41
유니티 설치 및 프로젝트
07 : 22
윈도우즈 유니티 설치
05 : 57
변수의 정리
05 : 53
함수의 정리
04 : 18
구조체의 메모리
08 : 11
클래스의 메모리
10 : 27
클래스의 레퍼런스
02 : 50
객체지향1(객체지향의 기본적 의미)
07 : 34
객체지향2 (객체지향의 관점)
04 : 22
섹션 1. 게임개발과 유니티
7 강의 36 : 34
유니티와 프로그래밍 인트로
01 : 16
게임오브젝트
08 : 33
컴포넌트
05 : 06
게임오브젝트의 메모리
05 : 25
컴포넌트의 메모리
05 : 05
모노비헤이버의 name 변수
06 : 15
게임오브젝트의 클래스
04 : 54
섹션 2. 클래스의 포함관계
11 강의 71 : 43
클래스의 포함관계 인트로
01 : 00
소유하는 참조
08 : 33
역참조와 상호참조
06 : 41
GameObject와Monobehaviour
07 : 58
GameObject 의 name 변수
03 : 40
name 변수 정리
06 : 01
다른 오브젝트의 접근
05 : 42
API 문서 살펴보기
09 : 02
자기참조
09 : 08
GameObject 내부의 gameObject 변수
10 : 16
this 의 의미
03 : 42
섹션 3. 기본문법과 유니티
9 강의 77 : 48
기본문법과 유니티 인트로
00 : 49
Static변수와 Static 함수
08 : 33
Start 함수와 Update 함수
07 : 10
물체가 깜박거리는 예제
14 : 25
키보드 입력
12 : 06
마우스 입력
08 : 27
Generic
11 : 35
메시렌더러
04 : 52
GetComponent
09 : 51
섹션 4. 물체의 이동
12 강의 82 : 16
물체의 이동 인트로
00 : 56
Vector3 구조체
08 : 53
Transform 과 position 읽어오기
04 : 18
프로퍼티
10 : 44
Transform 과 position 변경하기
06 : 09
좌표계, 오른손좌표계와 왼손좌표계
03 : 59
게임루프1
06 : 28
게임루프2
08 : 45
물체의 이동과 속도
08 : 37
방향을 가지는 벡터
06 : 11
Vector3 의 여러가지 이동방법
09 : 09
물체의 전후좌우 이동(추가)
08 : 07
섹션 5. 물체의 관리와 충돌
7 강의 49 : 49
물체의 관리 인트로
01 : 13
게임오브젝트의 Find
11 : 27
매니저 사용 예제(색변경)
14 : 55
마우스 클릭시 물체 각각의 색변경
06 : 53
충돌체와 강체
06 : 40
충돌체 강체 실습
05 : 05
Destroy
03 : 36
섹션 6. 슈팅게임 프로토타입 만들기 1 (캐릭터와 배경)
14 강의 104 : 48
슈팅게임 프로토타입 인트로
00 : 41
프로토타입의 목표(8월24일 연재예정)
유닛, 픽셀퍼유닛
09 : 55
카메라사이즈1
03 : 49
카메라사이즈2
08 : 53
스프라이트 및 캐릭터 이동
10 : 29
배출구 애니메이션 추가
08 : 51
View Port와 월드좌표계
07 : 23
배경스크롤
11 : 05
원경 -멀리있는배경- 스크롤
10 : 28
카메라의main (새로추가)
09 : 05
캐릭터 위치 제한걸기
10 : 17
캐릭터 제한 Clamp
06 : 26
소팅레이어
07 : 26
섹션 7. 슈팅게임 프로토타입 만들기 2 (발사체와 회전)
10 강의 87 : 10
프리펩및Instantiate
11 : 23
발사체
07 : 51
키입력에 따라 발사
07 : 55
오일러각도와 쿼터니언
11 : 02
소행성 추가
06 : 07
소행성 회전하면서 이동 - 추가
09 : 17
발사체와 소행성 충돌
08 : 42
소행성 hp 추가
05 : 34
발사체 이펙트1 프리펩
11 : 48
발사체 이펙트2 사용
07 : 31
섹션 8. 슈팅게임 프로토타입 만들기 3 (적과 발사체)
13 강의 75 : 13
코인 생성
13 : 56
코인 프리펩 사용
04 : 34
파괴 에니메이션 추가
07 : 01
파괴 애니메이션 사용
03 : 24
메니저 생성
06 : 21
적의 추가
09 : 39
적의 생성
05 : 26
적의충돌
04 : 20
코인의 값 적용
06 : 15
코인의 플레이어 충돌
08 : 36
적 발사체 구현
05 : 41
적 발사체발사(8월13일 연재예정)
플레이어 파괴(8월13일 연재예정)
섹션 9. 게임의 UI
9 강의
게임의 UI 인트로(8월17일 연재예정)
UI의 좌표계(8월13일 연재예정)
Canvas 의 해상도(8월13일 연재예정)
이미지(8월14일 연재예정)
버튼(8월14일 연재예정)
게임의 UI 추가(8월17일 연재예정)
게임내부UI의 구성(8월17일 연재예정)
게임의 Clear와 재시작(8월17일 연재예정)
메인화면의 구성(8월17일 연재예정)
섹션 10. 슈팅게임 만들기
12 강의
슈팅게임 인트로(8월18일 연재예정)
슈팅게임의 목표(8월18일 연재예정)
카메라 설정과 해상도(8월18일 연재예정)
게임화면 레터박스(8월19일 연재예정)
캐릭터의 이동(8월19일 연재예정)
캐릭터의 업그레이드(8월19일 연재예정)
발사체 발사 및 데이터 로딩(8월20일 연재예정)
적캐릭터(8월20일 연재예정)
적 생성(8월21일 연재예정)
보스생성(8월21일 연재예정)
엑셀 및 능력치 설정(8월21일 연재예정)
스테이지 전환(8월21일 연재예정)
섹션 11. 스토어 업로드
5 강의
게임 외 기타기능의 인트로(8월22일 연재예정)
광고기능 추가(8월22일 연재예정)
광고 기능과 게임의 연동(8월22일 연재예정)
업로드 전 준비사항(8월22일 연재예정)
스토어 업로드(8월22일 연재예정)

공개 일자

2020년 7월 17일 (마지막 업데이트 일자 : 2020년 7월 17일)

수강 후기

아직 평가를 충분히 받지 못한 강의 입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!😄️️

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스