2. 스터디 일정 및 커리큘럼
• 9월 12일 : 유니티 소개 및 에디터 조작법
• 9월 19일 : Sprite, Animation, Physics 기초
• 10월 10일 : Unity UI, GameManager
• 10월 24일 : Animation Controller, Timer
• 10월 31일 : 슈팅 게임 개발
• 11월 7일 : 2D 게임 완성(마녀이야기)
대학연합게임제작동아리 브릿지
3. 지난 시간
• 프로그래밍 시스템
• 스프라이트, 2D 애니메이션 기초
• 물리시스템
• 스테이지 관리
• Blinkz 실습
대학연합게임제작동아리 브릿지
4. uGUI
• 유니티의 새로운(?) GUI 시스템
- 새롭다고 하기에는...
- 4.6 이상 버전부터 사용가능
• 자세한 내용은
- http://www.slideshare.net/gukhwanji/46-gui
대학연합게임제작동아리 브릿지
5. Canvas
• 모든 UI element를 포함하는 게임오브젝트. Canvas라는 컴포넌
트를 가진다.
• 씬 뷰에서 직사각형 형태
- 게임 뷰에서 보이는 영역
• Screen Space : 화면을 기준으로 UI 그림
World Space : 필드에 세팅 가능. 오브젝트 영향 받음
• Canvas Scaler
- Contant Pixel Size : 스크린 사이즈를 바탕으로
- Scale with Screen Size : 스크린 사이즈를 지정
대학연합게임제작동아리 브릿지
6. Rect Transform
• UI 성분들을 위한 새로운 트랜스폼 컴포넌트
- Pivot : 회전이나 이동 시 쓰이는 기준점
- Stretch : 화면의 사이즈에 따라 변경될 기준점
• http://docs.unity3d.com/Manual/UIBasicLayout.html
대학연합게임제작동아리 브릿지
7. Text
• 흔히 알고 있는 Label
• 폰트, 사이즈 등 여러 정보 수정
가능
• Vertical, Horizontal Overflow
주의
대학연합게임제작동아리 브릿지
8. Image
• 스프라이트의 기능을 담당하는 UI Element
• Image type
- Simple : 기본
- Sliced : 3x3으로 분할. 가장자리 부분이 깨지지 않게
- Tiled : 스프라이트가 반복
- Filled : 부분적으로 스프라이트 보여줌
대학연합게임제작동아리 브릿지
14. Game Manager
대학연합게임제작동아리 브릿지
• 카드 뒤집기 게임
• GameManager 스크립트를 만들자.
- UI 게임오브젝트 (카드 24장)
- 카드 앞면 스프라이트 12개, 뒷면 1개
- 현재 상태 관리
- 맞춘 카드 갯수
- 첫번째 선택한 카드, 두번째 선택한 카드
15. 오브젝트 참조
대학연합게임제작동아리 브릿지
• public으로 선언 후 인스펙터창에 하나씩 집어넣는 방법
• 스크립트로 불러오는 방법
• 배열로 불러오자!
public GameObject[] cards1 = new GameObject[24];
• List, ArrayList
using System.Collections.Generic;
추가, 수정, 삭제 용이
16. Generic
대학연합게임제작동아리 브릿지
• 클래스 내부에 사용할 데이터 타입을 외부에서 지정하는 기
법 Java의 Generic, C++의 Templete
• List<GameObject> cards2 = new List<GameObject>();
17. 오브젝트 참조
• 캔버스 아래에 “cards”라는 빈 오브젝트 생성
- 나머지 카드들을 모두 “cards”의 자식으로 집어넣음
• // 이름이 “cards”인 오브젝트를 검색
GameObject o = GameObject.Find(“cards”);
// o의 자식 오브젝트들을 모두 cards2에 추가
for(int i=0; i<o.transform.childCount; i++){
GameObject card = o.transform.getChild(i).gameObject;
cards2.Add(card);
}
대학연합게임제작동아리 브릿지
18. 리소스 참조
• 마찬가지로 public으로 선언뒤 인스펙터 창에서 입력
• 스크립트로 불러오는 방법
Asset/Resources/ “경로이름”
• ex)
Resources.Load(“cards1”, typeof(Sprite)) as Sprite
대학연합게임제작동아리 브릿지
26. Game Manager 클래스
• Start()에 아래 코드 추가
- card오브젝트에 Card컴포넌트를 추가하고, 카드 뒷면 이
미지랑 앞면이미지(랜덤) 추가
• card.AddComponent<Card>().Setup(backSprite,
sprites[Random.Range (0,12)]);
• CardClick 함수 변경
void CardClick(GameObject o){
o.GetComponent<Card>().CardOpen();
}
대학연합게임제작동아리 브릿지
27. (실습3) 여기까지 구현!
• 클릭하면 미리 생성된 랜덤 앞면 보여주기
• 다시 클릭하면 뒷면 됨
대학연합게임제작동아리 브릿지
28. 카드 Shuffle
• 미리 나열된 배열을 하나 만듬
[0, 0, 1, 1, 2, 2, 3, 3, ... , 10, 10, 11, 11] (size : 24)
• 위의 배열의 순서를 섞어 버린다!
대학연합게임제작동아리 브릿지
36. (실습5) 1초동안 버튼 비활성화
• 카드 2개를 오픈 하면 1초간 모든 버튼이 비활성화 되도록
함.
• 1초가 지나면 (정답을 제외한) 모든 버튼 활성화
대학연합게임제작동아리 브릿지
37. [과제] 카드뒤집기 게임 완성
• 게임 시작하면 5초간 카드의 앞면을 보여주고 다시 뒤집힘
- Invoke활용
• 카드를 차례대로 선택. 두번째 카드가 선택되면 1초간 보여
주고 정답 판별
- 정답 : +500점
- 오답 : -100점
• 점수는 UI의 Text를 활용하여 화면에 배치
대학연합게임제작동아리 브릿지
38. [과제] 카드뒤집기 게임 완성
• 게임 클리어 : 모든 카드를 찾았을 때
• 게임 오버 : -1000점이되었을때
• 5초 뒤 게임 재시작.
대학연합게임제작동아리 브릿지