Unity 시작하기

65

Click here to load reader

Transcript of Unity 시작하기

Page 1: Unity 시작하기

Unity 시작하기

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

2015. 1.

Page 2: Unity 시작하기

Unity란?

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

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

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

• Author Once, Deploy Everywhere

• 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 시작하기

멀티 플랫폼 게임엔진

Page 4: Unity 시작하기

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

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

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

• 본 강의에서는 C# 사용

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

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

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

Page 5: Unity 시작하기

설치

Page 6: Unity 시작하기

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

• free version

• splash screen(게임 로딩시 화면)에 Unity가 나타남, 워터마크가 있음

• registered version

• 무료, 30일간 테스트를 할 수 있음

• Unity Pro는 유료(1,500$)

• Unity for Android, Unity for iOS는 별도의 license를 통해서 구매함

Page 7: Unity 시작하기

Unity Pro

Page 8: Unity 시작하기

라이센스 정책

Page 9: Unity 시작하기

Unity 화면 구성

Scene

Game

Hierarchy

Project

Hierachy

Assets

Inspector

Page 10: Unity 시작하기

화면구성

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

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

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

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

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

Page 11: Unity 시작하기

Demo

Angry Bots-최초 설치시 자동 로딩됨

Page 12: Unity 시작하기

Demo

Page 13: Unity 시작하기

Unity web player

유니티로 작성한 콘텐츠를 웹상에서 플레이할 수 있는 플러그인

Page 14: Unity 시작하기

Angry Bots 게임신

• FPS 슈팅 게임

• 마우스클릭-슈팅, 마우스 이동-목표물 조작

• 키보드-FPS 캐릭터 이동

• Zombie FPS Demo

• http://www.youtube.com/watch?feature=player_embedded&v=yXdab5xRnJ4

Page 15: Unity 시작하기

Angry Bots 레이아웃

Page 16: Unity 시작하기

Scene창 명령

Page 17: Unity 시작하기

게임 객체의 선택

Page 18: Unity 시작하기

기즈모• 이동, 회전, 확대/축소

Page 19: Unity 시작하기

기즈모

기즈모를 잘 활용하자

Page 20: Unity 시작하기

기즈모

Page 21: Unity 시작하기

튜토리얼

• 객체의 생성과 스크립팅

• 물리엔진• 게임객체를 다루는 방법

Page 22: Unity 시작하기

리소스 사이트

http://ivis.cwnu.ac.kr/wiki/index.php/%EC%9C%B5%ED%95%A9%EC%8B%A0%EA%B8%B0%EC%88%A0%EA%B5%90%EC%9C%A1_2015

Page 23: Unity 시작하기

유니티 튜토리얼

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

Page 24: Unity 시작하기

단축키

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

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

Page 25: Unity 시작하기

객체의 생성

• GameObject -> 3D Object/2D Object

Page 26: Unity 시작하기

기본 인터페이스와 메뉴

Page 27: Unity 시작하기

실행하기

게임 신을 실행

실행모드에서도 편집 가능- 저장이 안됨(주의)

Page 28: Unity 시작하기

실행

Page 29: Unity 시작하기

텍스처 추가하기

Page 30: Unity 시작하기

물리 추가하기

Page 31: Unity 시작하기

Inspector

• 객체의 속성

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

• 텍스처, 스크립트

• 물리적 속성

• 렌더링을 위한 정보

Page 32: Unity 시작하기

파일과 편집, 윈도우 명령

Page 33: Unity 시작하기

Asset Store

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

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

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

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

Page 34: Unity 시작하기

Asset Store

Page 35: Unity 시작하기

스크립트

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

Page 36: Unity 시작하기
Page 37: Unity 시작하기

Sample 프로젝트

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

Page 38: Unity 시작하기

새 프로젝트

Page 39: Unity 시작하기

plane과 cube등 객체 생성

Page 40: Unity 시작하기

물리속성

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

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

Page 41: Unity 시작하기

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

복사명령(Cmd + D)

스내핑(v)

Page 42: Unity 시작하기

간단한 슈팅 스크립트

• Project-Create-C#를 실행

• Script이름을 “ShootingBall”로 지정

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

Page 43: Unity 시작하기

event loop test

Page 44: Unity 시작하기

script를 카메라에 달자

Page 45: Unity 시작하기

실행-콘솔창

Shift + Command + C

Page 46: Unity 시작하기

게임 이벤트 루프

Page 47: Unity 시작하기

오디오 컴포넌트 추가

Page 48: Unity 시작하기

편집오디오 음원 지정

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

Page 49: Unity 시작하기

객체의 속성을 공개(public)

Page 50: Unity 시작하기

오디오 확인

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

Page 51: Unity 시작하기

편집

수정 - 디버깅

Page 52: 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 53: Unity 시작하기

스크립트 편집

Page 54: Unity 시작하기

다음과 같은 장면을 만들자

Page 55: Unity 시작하기

카메라 이동을 확인

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

Page 56: Unity 시작하기

Rigid body객체• Scene에 있는 Rigidbody 객체를 Bullet 객체로 할당함

Page 57: Unity 시작하기

슈팅• Instanciate 메소드를 통해서 bullet 객체를 생성함.

bullet 객체의 초기위치값과 회전값은 camera의 초기위치값, 회전값을 사용함

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

Page 58: Unity 시작하기

Play

Page 59: Unity 시작하기

실습

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

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

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

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

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

Page 60: Unity 시작하기

Lab

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

Page 61: Unity 시작하기

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

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

• 그래픽스 기초 개념

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

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

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

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

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

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

Page 62: Unity 시작하기

결론

• 멀티플랫폼용 게임개발은 매우 많은 시간과 비용이 소모된다

• Unity와 같은 강력한 게임엔진을 이용한 멀티 플랫폼용 게임 개발도구의 활용이 필요하다.

• Unity는 게임의 상세한 기능보다는 로직에 집중하도록 도와주는 도구이다

• 물리기반게임과 2D, 3D 게임개발에 편리하다

• 매우 다양한 기능이 있으며 지속적으로 업데이트 되고 있는 게임 엔진이다

• 향후 더욱 많은 플랫폼에서 적용될 예정이다

Page 63: Unity 시작하기

참고문헌

• Unity 3.x Game Development Essentials

• http://ugame.tu.ac.kr/ymkang/wiki/

• 동명대학교 강영민교수님 강의 페이지

• http://unity3d.com/

• Youtube 강의 동영상등

Page 64: Unity 시작하기

contact

[email protected]

• http://ivis.cwnu.ac.kr/wiki/index.php/%EC%9C%B5%ED%95%A9%EC%8B%A0%EA%B8%B0%EC%88%A0%EA%B5%90%EC%9C%A1_2015

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

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

• 추후 iOS, Android, Unity기반 앱 개발 교육예정

Page 65: Unity 시작하기

감사합니다