2. 스터디 일정 및 커리큘럼
• 9월 12일 : 유니티 소개 및 에디터 조작법
• 9월 19일 : Sprite, Animation, Physics 기초
• 10월 10일 : Unity UI, GameManager
• 10월 24일 : Animation Controller, Timer
• 10월 31일 : 슈팅 게임 개발
• 11월 7일 : 2D 게임 완성(마녀이야기)
대학연합게임제작동아리 브릿지
3. Unity3D의 역사
• 2000년도 초반 덴마크 학생 개발자 3명이 모여 게임엔진
개발.
• 원래는 게임 개발용도였지만 맥 전용 게임 엔진으로 공개.
• 윈도우, 웹브라우저, 아이폰, 안드로이드 등등
다양한 플랫폼 지원
대학연합게임제작동아리 브릿지
4. 통합 인터페이스
• 모든 기능을 하나의 에디터 프로그램에서 관리.
• 3D 그래픽과 유사한 인터페이스 제공
• 게임 오브젝트를 배치 => 컴포넌트를 붙여서 게임 제작
대학연합게임제작동아리 브릿지
5. 통합 애셋 시스템
• Asset :
- 게임 제작에 사용되는 다양한 종류의 파일.
- 하나의 통합된 시스템 안에서 관리.
- 외부 작업물을 쉽게 불러들일 수 있음.
• 모델링 : 3dsMax, Maya, Cinema4D, Blender 등
• 텍스처 : psd, png, gif, bmp 등
• 오디오 : wav, mp3, ogg, aiff 등
• 비디오 : mpeg, mov 등
대학연합게임제작동아리 브릿지
7. 유니티 인터페이스
뷰 이름 설명
씬 뷰
게임스테이지 제작에 사용되는 씬이라 불리는 가상 3차원 공간을 편집하게
도와주는 기능 제공
계층 뷰
씬이 배치된 물체들의 정보. 물체들을 게임오브젝트라고 하며, 오브젝트들을
계층 구조로 관리 할 수 있음
프로젝트 뷰
게임 제작에 필요한 파일을 애셋이라고 하며, 이런 애셋들을 관리하는 기능
제공. 탐색기와 유사한 인터페이스
인스펙터 뷰
게임 오브젝트나 특정 애셋을 선택하면 이들의 속성을 조절할 수 있는 기능
제공
게임 뷰
현재 만들고 있는 게임이 사용자 입장에서 어떻게 움직이고 보이는지 테스트
하는 공간. 성능 측정을 위한 다양한 부가정보 제공.
콘솔 뷰
에디터에서 발생하는 각종 문제점에 대한 메시지를 출력. Debug 클래스를
사용해 필요한 메시지 출력 가능.
대학연합게임제작동아리 브릿지
21. MonoBehavior
• 모든 클래스가 기본적으로 상속받는 클래스
• Awake(), Start(), Update() 등의 기본 메소드 제공
• 스크립트 실행주기 순서도
http://docs.unity3d.com/Manual/ExecutionOrder.html
대학연합게임제작동아리 브릿지
22. MonoBehavior
• Awake() : 스크립트가 로드 될 때
• Start() : 스크립트가 활성화 될 때, Update 메소드가 실행되
기 전 딱한 번 실행.
• Update() : MonoBehavior가 활성화 되어 있다면, 매 프레
임마다 한번 씩 실행.
• FixedUpdate() : MonoBehavior가 활성화 되어 있다면, 매
번 고정된 프레임레이트마다 한 번 씩 실행.
대학연합게임제작동아리 브릿지
23. 마우스 입력
• OnMouseDown() : 마우스가 눌러질 때
Drag, Enter, Over, Exit, Up 등등
• void OnMouseDown(){
Debug.Log(this.name);
}
• 스크립트가 붙어있는 오브젝트에서만 실행
• 오브젝트를 누르면, 오브젝트의 이름을 출력해라.
대학연합게임제작동아리 브릿지
24. 키보드 입력
• void Update(){
if(Input.GetKeyDown(KeyCode.Alpha0)){
Debug.Log(0);
}
}
• Update() : 매프레임 실행
• 매프레임마다 숫자 0키가 눌려졌는지 검사
• 눌러 졌으면 -> 숫자 0 출력
• KeyCode.LeftArrow, RightArrow ….. Alpha 0~ 9.
대학연합게임제작동아리 브릿지
25. 스크립트 변수 선언
• public class Test : MonoBehavior{
public int num = 0;
private int cnt = 0;
void Start(){
}
void Update(){
}
}
• public : 다른 클래스(스크립트) 에서도 접근가능
인스펙터 뷰에서 접근 가능
• private : 오직 클래스 내부에서만 접근 가능.
대학연합게임제작동아리 브릿지