책 소개
요약
NGUI는 강력하고 최적화된, 견고한 UI 시스템이다. 유니티에서 GUI를 만들 때 사실상 표준으로 사용되고 있다. NGUI는 성능을 크게 저하시키지 않고도 멋지고 복잡한 사용자 인터페이스를 만들 수 있게 해준다. 이 책은 실용적인 튜토리얼로서, 완전하게 기능하고, 로컬라이즈된 메인 메뉴와 2D, 3D 인게임 사용자 인터페이스(UI)를 만드는 과정으로 안내한다.
이 책에서 다루는 내용
■ 커스터마이즈 가능한 2D와 3D 인게임 UI 구성
■ NGUI를 사용한 옵션 저장, 볼륨 조절 구현, 애니메이션 실행, 매개변수 변경
■ 드래그 가능한 패널, 애니메이션, 콘텐츠 정렬, 로컬라이제이션을 사용해서 더 나은 UI 생성
■ 새로운 스프라이트와 폰트를 만들어서 사용자 인터페이스 커스터마이즈하기
■ 코드를 통한 게임 요소 제어와 요소들 사이의 충돌 처리
■ 효율적이고 사용자 친화적인 크로스 플랫폼 메인 메뉴 생성
■ 다양한 스크린 사이즈와 종횡비 처리
이 책의 대상 독자
유니티 NGUI를 사용해서 효과적이고 사용자 친화적인 GUI를 만드는 방법을 배우고 싶은 유니티 3D 개발자에게 꼭 필요한 책이다. C# 스크립팅에 대해서는 알고 있어야 하지만, NGUI에 대한 지식은 필요하지 않다.
이 책의 구성
1장, ‘NGUI 시작’에서는 NGUI 기능과 작업 흐름을 설명한다. 플러그인을 가져오고, 첫 번째 UI 시스템을 만들고 구조를 알아본다.
2장, ‘NGUI 위젯 생성’에서는 첫 번째 위젯을 소개하고 설정하는 방법을 설명한다. 그리고 메인 메뉴를 만드는 방법까지 살펴본다.
3장, ‘UI 개선’에서는 드래그 가능한 윈도우와 스크롤되는 텍스트를 만들고 앵커를 지혜롭게 사용하는 방법을 설명한다. 또한 애니메이션과 NGUI 로컬라이제이션에 대해서도 살펴본다.
4장, ‘NGUI와 C#’에서는 툴팁, 트윈 등을 코딩으로 만드는 데 사용되는 C# 이벤트 메소드를 소개한다. 서로 다른 다양한 씬에서 유지되는 UI도 만들어 본다.
5장, ‘아틀라스와 폰트 커스터마이제이션’에서는 스프라이트와 폰트를 사용해서 UI를 커스터마이즈하는 방법을 설명하고, 메인 메뉴의 전체적인 모습을 변경해 본다.
6장, ‘인게임 UI’에서는 상호작용하는 버튼, 라이프 게이지, 캐릭터 위에 표시되는 플레이어 이름과 같은 인게임 2D 인터페이스 요소들을 소개한다.
7장, ‘3D UI’에서는 지면에 그려져 조명 효과를 받는 정지 메뉴 등의 3D 위젯을 게임 환경에 추가하는 방법을 다룬다.
8장, ‘모바일 플랫폼’에서는 게임이 안드로이드 기기에서 정상적으로 동작하도록 프로젝트를 준비하고 모바일 기기에서 발생하는 문제들을 해결하는 방법을 살펴본다.
9장, ‘스크린 사이즈와 종횡비’에서는 다양한 스크린 사이즈를 갖는 모든 모바일 기기에서 멋진 UI를 만드는 방법을 설명한다.
10장, ‘사용자 경험과 모범 실무’에서는 사용자 인터페이스 디자인 가이드라인, 사용자 경험, 시스템 효율성을 향상시키는 데 도움이 되는 테스트 방법에 대해 다룬다.
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
목차
목차
- 1 NGUI 시작
- 개요
- 라이선스
- UnityGUI 대 NGUI
- 아틀라스
- 이벤트
- 지역화
- 셰이더
- 마지막 빌드
- NGUI 추가
- 에셋 스토어에서 추가
- 디스크에서 추가
- 패키지 추가
- UI 루트 생성
- 텍스트 표시
- 레이블 위젯 생성
- 글꼴 선택
- UILabel 매개변수
- 레이블 설정
- 위젯 매개변수
- 스프라이트 표시
- 스프라이트 위젯 생성
- UISprite 매개변수
- 스프라이트 설정
- 아틀라스 고르기
- 스프라이트 고르기
- 스프라이트 타입
- 슬라이스
- 심플
- 타일
- 필
- 자세히 살펴보기
- UIRoot
- 스케일링 스타일
- 설정
- UIPanel
- 카메라 시스템
- 직교투영 카메라
- UICamera
- UIRoot
- 요약
- 개요
- 2 NGUI 위젯 생성
- 컨트롤 프리팹
- Background
- 프리팹 툴바
- 버튼
- 버튼 생성
- UIButton 매개변수
- Play 버튼
- Options 버튼
- Exit 버튼
- Options 윈도우
- 팝업 리스트
- 팝업 리스트 생성
- UIPopup list의 매개변수
- 언어 선택 박스 생성
- 배경 스프라이트 생성
- 제목
- 팝업 리스트
- 입력 필드
- 입력 필드 생성
- UIInput의 매개변수
- 닉네임 박스
- 입력 필드
- 체크박스 추가
- 체크박스 생성
- UIToggle의 매개변수
- 사운드 토글 박스
- 체크 박스
- 슬라이더
- 슬라이더 생성
- UISlider의 매개변수
- 볼륨 조절
- 음향 효과(SFX) 슬라이더
- 음악 슬라이더
- 요약
- 컨트롤 프리팹
- 3 UI 개선
- NGUI 컴포넌트
- hover 상태일 때 버튼이 커지게 하기
- UIButton Scale
- 사용
- 매개변수
- UIButton Scale
- 메뉴 나타나게 하기
- 트윈의 의미
- Tween Scale 컴포넌트
- 사용
- 매개변수
- 설정
- 메뉴 사라지게 하기
- UIPlay Tween
- 사용
- 매개변수
- 설정
- 게임 종료
- MenuManager 스크립트
- 트윈에 Exit() 메소드 링크
- UIPlay Tween
- 옵션 페이지로 전환
- Tween Position 컴포넌트
- 메뉴 숨기기
- Tween Position 컴포넌트 설정
- Tween Position 실행
- 옵션 페이지 나타나게 하기
- Tween Position 컴포넌트 설정
- Tween Position 컴포넌트 실행
- 메인 메뉴로 돌아오기
- Confirm 버튼
- 옵션 페이지 사라지게 하기
- 메인 메뉴 나타나게 하기
- 씬 초기화
- Options 페이지 가운데로 오게 하기
- initialization 스크립트
- MenuManager 스크립트
- 볼륨 박스 사라지고 나타나게 하기
- Tween Alpha 컴포넌트
- 볼륨 박스 페이드
- Tween Alpha 컴포넌트 설정
- Tween Alpha 실행
- 그 외의 트윈 컴포넌트들
- 드래그 가능한 윈도우
- UIDragObject
- 사용
- 매개변수
- 설정
- 갑자기 이동하는 윈도우
- 메인 메뉴
- UIDragObject
- 스크롤되는 텍스트
- 텍스트 박스
- 환영 인사 레이블
- 클리핑
- 닫기 버튼
- UIForward events
- 메인 메뉴 닫기
- 옵션 페이지 닫기
- UIEvent Trigger
- 닉네임 강제 저장
- UIForward events
- 로컬라이제이션 시스템
- 로컬라이제이션 파일
- UILocalize
- 언어 선택
- 남은 로컬라이제이션 키들
- 마지막 수정
- 앵커
- 목적
- 매개변수
- 설정
- 요약
- 4 NGUI와 C
- 이벤트
- 사용 가능한 메소드
- 예제
- 툴팁 생성
- 툴팁 오브젝트
- 위젯
- UITooltip
- 툴팁 표시
- 남은 툴팁 추가
- 툴팁 오브젝트
- 트윈
- Tween Scale
- DisappearOnClick 스크립트
- 트윈 이펙트
- Tween Scale
- 이벤트 딜리게이트
- 콜백 메소드
- 콜백 메소드와 이벤트 링크
- 코드
- 인스펙터
- 키보드 키
- UIKey Binding
- 매개변수
- 설정
- UIKey Navigation
- 매개변수
- 설정
- 마우스와 키보드 동작
- UIKey Binding
- 옵션 저장
- UISaved Option
- 설정
- 사운드 체크박스
- UISaved Option
- 지속되는 UI
- 싱글톤
- Singleton 클래스
- MenuManager 구현
- 환영 인사 텍스트 제거
- 싱글톤
- 요약
- 이벤트
- 5 아틀라스와 폰트 커스터마이제이션
- 텍스처 아틀라스
- 아틀라스 프리팹
- 새 아틀라스 생성
- Atlas Maker
- 새 아틀라스
- 필요한 에셋
- Game 아틀라스
- 플레이 아이콘
- 아틀라스에 스프라이트 추가
- 심플 스프라이트
- 아틀라스 갱신
- 옵션 아이콘
- 종료 아이콘
- 슬라이스 스프라이트
- 아틀라스 갱신
- 버튼 배경
- 타일 스프라이트
- 아틀라스 갱신
- 나무 텍스처
- 심플 스프라이트
- 폰트
- 다이나믹 폰트
- 비트맵 폰트
- 폰트 메이커
- UIFont 컴포넌트
- 툴팁 라벨
- 큰 텍스처 표시
- UITexture 컴포넌트
- 매개변수
- 설정
- UITexture 컴포넌트
- 요약
- 텍스처 아틀라스
- 6 인게임 UI
- 게임
- 게임 방식
- 필요한 에셋
- 유니티 패키지 추가
- 드래그할 수 있는 파워 소스
- UICamera
- UIDragObject
- BoxCollider
- 플레이어 움직이기
- 땅 클릭해서 움직이기
- 오브젝트로 이동
- 플레이어 이름 표시
- 인게임 2D UI 루트
- 닉네임 프리팹
- PlayerName 컴포넌트
- FollowObject 컴포넌트
- 파워 소스 원소 전환
- 원소 전환 UI
- 불 버튼
- 나머지 원소 버튼
- FollowObject 컴포넌트
- GameManager 컴포넌트
- PowerSource 컴포넌트
- 원소 전환 UI 숨기기
- 원소 전환 UI
- 원소 전환 충전 과정
- Progress 프리팹
- Progress 슬라이더 구현
- 원소 버튼과 연결
- 사용 불가능한 버튼
- EnableAllButtons () 메소드
- SetButtonState () 메소드
- 버튼 상태 변경
- 메인 메뉴에서 시작
- 요약
- 게임
- 7 3D UI
- 3D 유저 인터페이스 소개
- 3D UI Root
- 스케일 조정
- 스코어 카운터
- 텍스트 레이블
- 배경
- 테두리 스프라이트
- 위치와 회전
- ScoreController 컴포넌트
- 정지 버튼
- 정지 메뉴
- 패널과 박스
- 타이틀 바
- 버튼
- 정지 메뉴 표시
- 버튼 링크
- 키 바인딩
- 인터랙션 오버라이드
- 3D 환경 텍스트
- 조명 효과
- 요약
- 3D 유저 인터페이스 소개
- 8 모바일 플랫폼
- 안드로이드로 전환
- 준비
- 게임 테스트
- Bundle Identifier
- 패키지 빌드
- Manual build
- Build and run
- 테스트
- 문제 수정
- 자동 회전
- 뒤로가기 버튼
- 캐릭터 이동
- 원소 전환 UI
- 대기 상태 피드백 아이콘
- 코드 구현
- 커스터마이즈 가능한 UI
- 드래그 가능한 UI 요소
- 드래그 활성화
- CustomizableUIElement 컴포넌트
- GameManager 컴포넌트
- 문제 발생 원인
- 유니티 리모트
- 필요 조건
- 설정
- 게임 테스트
- 프로파일러
- 기능
- 기기에서 프로파일러 실행
- 기기에서 디버깅
- 요약
- 9 스크린 사이즈와 종횡비
- 어댑티브 UI
- 플렉서블 UI
- 다중 비트맵 폰트
- SmallLato 폰트
- MediumLato 폰트
- LargeLato 폰트
- 폰트 표시
- 다중 아틀라스
- 아틀라스 생성
- SDAtlas
- HDAtlas
- SHDAtlas
- ScreenAtlas
- 테스트 버튼
- 레퍼런스 아틀라스 변경
- 스프라이트 이름 변경
- 아틀라스 생성
- 아틀라스 전환
- AtlasSwitchController 컴포넌트
- 설정
- 픽셀 스내핑
- 폰트 전환
- ScreenFont
- ScreenFont 할당
- 요약
- 10 사용자 경험과 모범 실무
- 시작
- 정의
- 사용자 경험
- 페르소나
- 편리성
- 몰입
- 사용자 인터페이스 디자인
- 게임에서의 사용자 인터페이스
- 휴리스틱
- 안내
- 안내
- 암시
- 분류
- 피드백
- 작업량
- 간결성
- 정보 밀도
- 분명한 컨트롤
- 분명한 동작
- 사용자 컨트롤
- 적응성
- 유연성
- 커스터마이제이션
- 에러 처리
- 보호
- 알림
- 수정
- 일관성
- 안내
- 게임 테스트
- 테스트에 대한 조언
- 언제와 무엇
- 컨셉 프로토타입
- 나머지 부분을 일찍 테스트하라
- 버티컬 슬라이스
- 가독성
- 안내
- 테스트 횟수
- 편리성 테스트 방법
- 준비
- 플레이어 초대
- 환경
- 노트
- 우선순위 매기기
- 요약
도서 오류 신고
정오표
정오표
2016. 1. 6 수정사항
[p.126: 그림 오류]
<수정>
2016. 1. 13 수정사항
[p. 175: 아래에서 10행]
DisappearOnClic의 Target 필드로 드래그한다.
->
DisappearOnClick의 Target 필드로 드래그한다.