본문 바로가기
관/핫한 닷지 프로젝트 게임개발

닷지 게임제작 기초 14(게임 UI 제작 편).

by 4차원 박스 2020. 7. 28.

UI를 차근히 글을 따라서 만들어 본다.

생각보다 별거 없지만 길어서 나누어 포스팅 한다.

 

우선 저번에 만든 총알생성기에 필요한 오브젝트를 할당해주자

퍼블릭으로 해준 public GameObject bulletPrefab; 이 있으므로

프리팹을 여기다 드래그해준다.

 

이제 테스트해보고 문제가 없으면. 

UI작업을 해준다.

 

<게임 UI>

1. 생존시간

2. 겜오버

3. 최고기록

 

<유니티 엔진의 UI>

타 엔진들과는 다르게 게임 월드 속의 게임 오브젝트로 취급을 한다

즉 하나의 UI요소는 씬 속의 하나의 겜 오브젴이 된다.

따라서 일반 겜 오브젴을 다루는 방법과 같은 방식으로 UI 게임 오브젴을 다룰 수 있다는 장점이 있다.

 

씬 편집 모드를 2D로 바꾼다.

Canvas 더블클릭하여 씬에서 캔버스 포커스된다.

 

 

 

텍스트 오브젝트를 만든다.

여기서 눈여겨 볼 것은

Text 오브젝트를 만드는 순간 총 3개의 겜오브젴이 생성된다.

text, canvas,. eventsystem 오브젝트이다.

Text 오브젝트는 Canvas 겜 오브젴의 자식 오브젝트로 설정되어 있다

UI 요소들은 캔버스의 2차원 평면에 배치되기 때문이다.

 

UI 겜오브젴은 일반 겜오브젴과 달리 트랜스폼 컴포넌트를 확장한

사각 트랜스폼(Rect Transform) 컴포넌트를 가진다.

 

UI요소는 자신이 배치될 2차원의 액자가 필요하고 Canvas 오브젴은 UI요소가 배치될수 있게 하는 액자 역할을 한다.

 

따라서 UI를 만들때 Canvas 오브젝트가 씬에 없다면 자동으로 하나가 생성된다

그리고 모든 UI오브젴은 Canvas의 자식이 된다.

 

<EventSystem 오브젴>

은 이벤트 시스템 컴포넌트를 가진 오브젝트로

UI 게임 오브젴에 클릭, 터치, 드래그 같은 상호작용을

이벤트 메시지로 전달한다.

이 오브젴이 없다면 UI버튼 클릭, 드래그 등의 상호작용을 할 수 없다.

또한 이 오브젴은 별다른 설정을 요구하지 않고 스스로 동작하기에 직접수정할 일은 거의 없다.

 

이제 만든 Text 오브젴을 배치한다.

 

Text 오브젴의 이름을 Time Text로 변경

인스펙터 창에서 앵커프리셋 클릭

Alt를 누른 상태에서 top-center 클릭

이제 이 time text UI는 상단중앙에 배치된다.

<앵커프리셋(Anchor Presets)>

UI 배치를 잘하기 위해

앵커(anchor), 피벗(pivot), 포지션(position) 값을 잘 조정해야 한다.

앵커 프리셋은 자주 사용되는 앵커,피벗,포지션값을 미리 제공하여 UI배치를 편하게 해주는

설정 예시 모음창 이다.

 

Alt 버튼을 누르면 스냅핑을 활성화 하여

앵커값 뿐만 아니라 포지션 값도 변경되게 하여

해당 UI오브젴이 해당 방향의 모서리에 붙게하는 형태로 정렬된다.

 

이제 텍스트 내용과 폰트, 색을 변경한다

텍스트 오브젝트에 있는 텍스트 컴포넌트가 그것을 해준다.

 

Time Text 오브젝트의 Text컴포넌트의 Text필드 내용을 Time : 0 으로 해준다.

텍스트 컴포넌트의 Alignment center, middle로 변경해준다.

(이거로 글상자 정중앙에 텍스트가 표시된다).

color 255,255,255 로 하얀색으로 한다.

글이 길어지는 관계로 텍스트 컴포넌트를 조금더 살피는건 다음 포스팅에서 이어서 보도록 한다. 슬슬 프로젝트가 끝나간다!

 

 

댓글