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
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=yXdab5xR
nJ4
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기반 앱 개발 교육예정
감사합니다

Unity 시작하기