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 플랫폼 지원
Unity
• 적은 프로그래밍 기술로도 개발이 가능함
• JavaScript, C#, Boo 언어를 통한 개발을 지원
• 스크립트도 Unity의 컴포넌트가 됨
• 본 강의에서는 C# 사용
• 유료/무료 Asset을 구매하여 개발할 수 있음
• PhysX 물리 엔진 지원-물리적 효과를 쉽게 구현할 수 있음( 실시간 옷
감, 물리객체들 간의 충돌, 파티클등 )
• Drag & Drop 방식의 비주얼 프로그래밍
라이센스 정책
• Unity Personal vs Professional 버전이 있음
• Personal version
• 게임 로딩시 화면에 Unity가 나타남, 분석도구가 없음, 팀
라이센스 없음, 연간 수익이 100,000달러이상인 경우에
는 Professional License를 구매해야 함.
• Professional version(매월 $75)
• 다양한 기능과 분석도구, 자유로운 라이센스등
화면구성
• Scene - 게임을 만드는 화면(drag & drop)
• Hierarchy - 게임 신의 게임 객체목록과 그 계층적 구조
• Project - 게임개발에 필요한 이미지, 3d 객체, 스크립트등의 리소스
(Asset이라고 함)
• Inspector - 유니티 게임은 여러 개의 게임객체로 구성되어 있으며,
Inspector는 선택된 게임 객체의 속성정보를 자세히 보여주며, 관련
스크립트와 리소스 연동을 지시함.
• Toolbar - Transform, Play/Pause Button, 레이아웃 조정 버튼등을
가지고 있음
할일
• 유니티 Asset Store 계정만들기
• 유니티 개발시 필요한 Asset을 유료/무료로 다운 받을 수
있다
변환툴(Transform Tool)
변환툴에서 핸드툴을 선택하는 단축 키는 ‘Q’이다
Move : 마우스 클릭-드래그를 통해 카메라 이동
Orbit : Alt+마우스 좌클릭 + 드래그를 통해 카메라를
현재 피봇포인트 주위로 회전 시킨다
Zoom : 마우스-드래그를 통해 카메라를
줌인/아웃
Asset Store
• 개발을 위한 리소스를 다운 받을 수 있는 스토어
• 무료/유료 Asset들이 있으며 Asset Store의 content는 7:3
rule에 따라 수익을 보장받는다
• 방대한 Asset시장 역시 Unity의 큰 장점이다
• http://unity3d.com/asset-store/submit-content
에러 수정
• 대부분의 프로그램 개발도구와 마찬가지로 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 객체의 수직, 수평값을 사용함
슈팅
• Instanciate 메소드를 통해서 bullet 객체를 생성함. bullet
객체의 초기위치값과 회전값은 camera의 초기위치값, 회전
값을 사용함
• TransformDirection 메소드를 통해 카메라의 포워드 벡터
를 얻고 이 값을 bullet 객체에 가해지는 힘 벡터로 사용함
유니티 기반 게임 개발에 필요한 지식들
• 3D의 좌표계 : 전역좌표계 지역좌표계
• 그래픽스 기초 개념
• 장면그래프
• 그래픽 객체의 계층적 구조를 만드는데 필요함
• 입력객체
• 키보드, 마우스,조이스틱 입력객체에 대한 이해
• 물리엔진과 풍부한 사용자 인터페이스에 대한 이해
• C#, Javascript 프로그래밍 기술
• 스크립트를 이용하여 게임 로직을 구현하는 프로그래밍 기술
• 다양한 플랫폼에서 사용하기 위한 플랫폼에 대한 이해