Unity 시작하기

Post on 15-Jul-2015

390 views 3 download

Transcript of Unity 시작하기

Unity 시작하기

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

2015. 1.

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 지원 예정

멀티 플랫폼 게임엔진

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

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

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

• 본 강의에서는 C# 사용

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

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

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

설치

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

• free version

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

• registered version

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

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

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

Unity Pro

라이센스 정책

Unity 화면 구성

Scene

Game

Hierarchy

Project

Hierachy

Assets

Inspector

화면구성

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

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

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

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

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

Demo

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

Demo

Unity web player

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

Angry Bots 게임신

• FPS 슈팅 게임

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

• 키보드-FPS 캐릭터 이동

• Zombie FPS Demo

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

Angry Bots 레이아웃

Scene창 명령

게임 객체의 선택

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

기즈모

기즈모를 잘 활용하자

기즈모

튜토리얼

• 객체의 생성과 스크립팅

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

리소스 사이트

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://unity3d.com/learn/tutorials/modules

단축키

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

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

객체의 생성

• GameObject -> 3D Object/2D Object

기본 인터페이스와 메뉴

실행하기

게임 신을 실행

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

실행

텍스처 추가하기

물리 추가하기

Inspector

• 객체의 속성

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

• 텍스처, 스크립트

• 물리적 속성

• 렌더링을 위한 정보

파일과 편집, 윈도우 명령

Asset Store

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

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

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

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

Asset Store

스크립트

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

Sample 프로젝트

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

새 프로젝트

plane과 cube등 객체 생성

물리속성

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

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

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

복사명령(Cmd + D)

스내핑(v)

간단한 슈팅 스크립트

• Project-Create-C#를 실행

• Script이름을 “ShootingBall”로 지정

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

event loop test

script를 카메라에 달자

실행-콘솔창

Shift + Command + C

게임 이벤트 루프

오디오 컴포넌트 추가

편집오디오 음원 지정

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

객체의 속성을 공개(public)

오디오 확인

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

편집

수정 - 디버깅

에러 수정

• 대부분의 프로그램 개발도구와 마찬가지로 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

스크립트 편집

다음과 같은 장면을 만들자

카메라 이동을 확인

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

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

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

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

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

Play

실습

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

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

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

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

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

Lab

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

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

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

• 그래픽스 기초 개념

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

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

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

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

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

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

결론

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

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

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

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

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

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

참고문헌

• Unity 3.x Game Development Essentials

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

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

• http://unity3d.com/

• Youtube 강의 동영상등

contact

• dongupak@gmail.com

• 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기반 앱 개발 교육예정

감사합니다