Unity시작하기

82
4. Unity 시작하기 2015. 6. 창원대학교 정보통신공학과 박동규 http://ivis.cwnu.ac.kr/tc/dongupak/

Transcript of Unity시작하기

Page 1: Unity시작하기

4. Unity 시작하기

2015. 6. 창원대학교 정보통신공학과 박동규 http://ivis.cwnu.ac.kr/tc/dongupak/

Page 2: Unity시작하기

Unity란?

• 개발 : Unity Technology사( www.unity3d.com )

• 멀티플랫폼용 게임 개발을 위한 게임엔진

• 2D, 3D 게임 개발, 건축 시각화, 3D 애니메이션

• Author Once, Deploy Anywhere

• Windows, Linux, Mac, Android, iOS, Unity Web Player, Adobe Flash Player, PlayStation 3, Xbox 360, Nintendo Wii, 윈도 8, 윈도폰 8, 닌텐도 Wii U, 삼성 Tizen 플랫폼 지원

Page 3: Unity시작하기

멀티 플랫폼 게임엔진

2015. 6.

Page 4: Unity시작하기

Unity• 적은 프로그래밍 기술로도 개발이 가능함

• JavaScript, C#, Boo 언어를 통한 개발을 지원

• 스크립트도 Unity의 컴포넌트가 됨

• 본 강의에서는 C# 사용

• 유료/무료 Asset을 구매하여 개발할 수 있음

• PhysX 물리 엔진 지원-물리적 효과를 쉽게 구현할 수 있음( 실시간 옷감, 물리객체들 간의 충돌, 파티클등 )

• Drag & Drop 방식의 비주얼 프로그래밍

Page 5: Unity시작하기

설치

Page 6: Unity시작하기

설치

Page 7: Unity시작하기

설치후 등록-sign in

Page 8: Unity시작하기

시작하기

Page 9: Unity시작하기

라이센스 정책• Unity Personal vs Professional 버전이 있음

• Personal version

• 게임 로딩시 화면에 Unity가 나타남, 분석도구가 없음, 팀 라이센스 없음, 연간 수익이 100,000달러이상인 경우에는 Professional License를 구매해야 함.

• Professional version(매월 $75)

• 다양한 기능과 분석도구, 자유로운 라이센스등

Page 10: Unity시작하기

기능 비교

Page 11: Unity시작하기

혼자서 배우기

Page 12: Unity시작하기
Page 13: Unity시작하기

커뮤니티

Page 14: Unity시작하기

Unity 화면 구성

Scene

Game

Hierarchy

Project

Hierachy

Assets

Inspector

Page 15: Unity시작하기

화면구성• Scene - 게임을 만드는 화면(drag & drop)

• Hierarchy - 게임 신의 게임 객체목록과 그 계층적 구조

• Project - 게임개발에 필요한 이미지, 3d 객체, 스크립트등의 리소스(Asset이라고 함)

• Inspector - 유니티 게임은 여러 개의 게임객체로 구성되어 있으며, Inspector는 선택된 게임 객체의 속성정보를 자세히 보여주며, 관련 스크립트와 리소스 연동을 지시함.

• Toolbar - Transform, Play/Pause Button, 레이아웃 조정 버튼등을 가지고 있음

Page 16: Unity시작하기

할일

• 유니티 Asset Store 계정만들기

• 유니티 개발시 필요한 Asset을 유료/무료로 다운 받을 수 있다

Page 17: Unity시작하기

Flappy Bird

• 리소스와 프로젝트 파일 다운 받기

• http://ivis.cwnu.ac.kr/tc/dongupak/245

Page 18: Unity시작하기

Flappy Bird

Page 19: Unity시작하기

Scene창 명령

카메라 평행 이동 명령

Page 20: Unity시작하기

Scene창 명령

객체의 평행이동

Page 21: Unity시작하기

Scene창 명령

객체의 회전

Page 22: Unity시작하기

Scene창 명령

객체의 확대 축소

Page 23: Unity시작하기

Scene창 명령

객체의 확대 축소

Page 24: Unity시작하기

객체변환

Page 25: Unity시작하기

변환툴(Transform Tool)변환툴에서 핸드툴을 선택하는 단축 키는 ‘Q’이다

Move : 마우스 클릭-드래그를 통해 카메라 이동

Orbit : Alt+마우스 좌클릭 + 드래그를 통해 카메라를 현재 피봇포인트 주위로 회전 시킨다

Zoom : 마우스-드래그를 통해 카메라를 줌인/아웃

Page 26: Unity시작하기

변환툴 단축키

각각의 기능은 q,w,e,r,t 키와 매핑

scene 창을 조작하는 매우 중요한 기능

Page 27: Unity시작하기

툴바

변환 툴 - Scene 뷰에서 사용

변환 기즈모 툴 - Scene 뷰 디스플레이에 영향을 준다

실행/중지/스텝 버턴 - 게임뷰에서 게임의 실행과 중지

레이어 드롭다운 - 장면뷰에 나타나는 객체 제어

레이아웃 드롭다운 - 뷰의 정렬제어

Page 28: Unity시작하기

기즈모(Gizmo)

기즈모를 잘 활용하자

Page 29: Unity시작하기

기즈모

Page 30: Unity시작하기

Perspective View

Isometric View

Page 31: Unity시작하기

투영법

Page 32: Unity시작하기

매뉴얼

http://docs.unity3d.com/Manual/index.html

Page 33: Unity시작하기

튜토리얼

• 객체의 생성과 스크립팅

• 물리엔진

• 게임객체를 다루는 방법

Page 34: Unity시작하기

유니티 튜토리얼

http://unity3d.com/learn/tutorials/modules

Page 35: Unity시작하기

새 프로젝트

Page 36: Unity시작하기

폴더 만들기

Page 37: Unity시작하기

프로젝트명

Page 38: Unity시작하기

객체의 생성

• GameObject -> 3D Object/2D Object

Page 39: Unity시작하기

기본 인터페이스와 메뉴

Page 40: Unity시작하기

실행하기

게임 신을 실행

실행모드에서도 편집 가능- 저장이

안됨(주의)

Page 41: Unity시작하기

실행

Page 42: Unity시작하기

텍스처 추가하기

Page 43: Unity시작하기

타일 텍스쳐

http://llbinnall.cafe24.com/xe/index.php?mid=sub2_2_2&document_srl=685970

Page 44: Unity시작하기

물리 추가하기

Page 45: Unity시작하기

Inspector

• 객체의 속성

• x,y,x 좌표, 회전, 스케일

• 텍스처, 스크립트

• 물리적 속성

• 렌더링을 위한 정보

Page 46: Unity시작하기

파일과 편집, 윈도우 명령

Page 47: Unity시작하기

Asset Store

• 개발을 위한 리소스를 다운 받을 수 있는 스토어

• 무료/유료 Asset들이 있으며 Asset Store의 content는 7:3 rule에 따라 수익을 보장받는다

• 방대한 Asset시장 역시 Unity의 큰 장점이다

• http://unity3d.com/asset-store/submit-content

Page 48: Unity시작하기

Asset Store

Page 49: Unity시작하기

스크립트

C#, JavaScript,Boo를 이용한 프로그래밍이 가능함 MonoDevelop이라는 편집도구를 사용-외부편집기도 가능

Page 50: Unity시작하기

레이아웃 변경

Page 51: Unity시작하기

Sample 프로젝트

• 유니티를 이용하여 간단한 슈팅 게임과 스크립트를 만들어 보도록 하자

Page 52: Unity시작하기

새 프로젝트

Page 53: Unity시작하기

빈 프로젝트

Page 54: Unity시작하기

plane과 cube등 객체 생성

Page 55: Unity시작하기

물리속성

선택한 물체에 강체(rigidbody) 물리 속성을 부여한다

강체(rigidbody)는 질량과 항력, 중력등의 속성을 가짐

Page 56: Unity시작하기

객체의 복사와 스내핑(v)

복사명령(Cmd + D)

스내핑(v)

Page 57: Unity시작하기
Page 58: Unity시작하기

충돌체(collider)

Page 59: Unity시작하기

간단한 슈팅 스크립트

• Project-Create-C#를 실행

• Script이름을 “ShootingBall”로 지정

• 더블클릭하여 편집창으로 이동함

Page 60: Unity시작하기

event loop test

Page 61: Unity시작하기

script를 카메라에 연결하자

Page 62: Unity시작하기

실행-콘솔창

Shift + Command + C

Page 63: Unity시작하기

게임 이벤트 루프

Page 64: Unity시작하기

카메라에 오디오 컴포넌트 추가

Page 65: Unity시작하기

편집오디오 음원

지정

오디오 소스를 메인카메라로

지정

Page 66: Unity시작하기

객체의 속성을 공개(public)

Page 67: Unity시작하기

오디오 확인

• 마우스 클릭시 슈팅 사운드가 들리는지 확인해 보세요

Page 68: Unity시작하기

에러 수정

• 대부분의 프로그램 개발도구와 마찬가지로 Error가 발생하면 스크립트의 콘솔에 에러의 위치와 내용을 보여준다

• 이 부분을 수정하여 저장하면된다

• C# 문법

• http://binteractive.org/wp/wp-content/uploads/2014/02/C%EA%B8%B0%EC%B4%88%EB%AC%B8%EB%B2%95.pdf

Page 69: Unity시작하기

Sphere를 만들자

Page 70: Unity시작하기

스크립트 편집

Page 71: Unity시작하기

자동완성 기능

Page 72: Unity시작하기

편집

수정 - 디버깅

Page 73: Unity시작하기

카메라 이동을 확인

카메라 객체의 transform 속성의 Translate값을 h,v값으로 변경함. h, v는 Input 객체의 수직, 수평값을 사용함

Page 74: Unity시작하기

슈팅

• Instanciate 메소드를 통해서 bullet 객체를 생성함. bullet 객체의 초기위치값과 회전값은 camera의 초기위치값, 회전값을 사용함

• TransformDirection 메소드를 통해 카메라의 포워드 벡터를 얻고 이 값을 bullet 객체에 가해지는 힘 벡터로 사용함

Page 75: Unity시작하기

Play

Page 76: Unity시작하기

장면저장

Page 77: Unity시작하기

실습

• Scene에 다양한 강체객체를 만들어 본다

• 강체의 Mass를 아주 크게 만들어 본다

• 슈팅 스피드를 강하게, 약하게 조절해 본다

• 객체의 색상과 텍스처를 변형해 본다

• 슈팅 사운드를 변경해 본다

Page 78: Unity시작하기

Lab

• 다음과 같은 장면을 만들어 벽을 부수어 보자

Page 79: Unity시작하기

유니티 기반 게임 개발에 필요한 지식들

• 3D의 좌표계 : 전역좌표계 지역좌표계

• 그래픽스 기초 개념

• 장면그래프

• 그래픽 객체의 계층적 구조를 만드는데 필요함

• 입력객체

• 키보드, 마우스,조이스틱 입력객체에 대한 이해

• 물리엔진과 풍부한 사용자 인터페이스에 대한 이해

• C#, Javascript 프로그래밍 기술

• 스크립트를 이용하여 게임 로직을 구현하는 프로그래밍 기술

• 다양한 플랫폼에서 사용하기 위한 플랫폼에 대한 이해

Page 80: Unity시작하기

과제

Page 81: Unity시작하기

contact

[email protected]

• http://ivis.cwnu.ac.kr/tc/dongupak

• http://cwapp.org/ - 창원시 스마트 모바일 앱 지원센터

Page 82: Unity시작하기

Q & A