유니티:UI
- 유니티:개요
- 유니티:기본 조작
- 유니티:카메라
- 유니티:오브젝트
- 유니티:코딩기초
- 유니티:UI
- 유니티:게임 내 화면
- 유니티:플레이어
- 유니티:맵
- 유니티:씬
- 유니티:몬스터
- 유니티:아이템
- 유니티:음향
- 유니티:빌드
- 유니티:VR
- 유니티:팁
개요[편집 | 원본 편집]
게임 메뉴나 스테이터스 등을 표시하기 위한 정보제공기능.
여러 카메라 중 어떤 카메라를 플레이어에게 보여줄지 배정하기도 한다.
작성[편집 | 원본 편집]
계층 창에서 우클릭을 하면 UI메뉴가 따로 있다. 클릭하면 여러 게임 오브젝트가 한번에 생긴다.
캔버스는 바로 게임의 창.. 카메라가 아닌,
캔버스에 가까운 것이 상위에 위치한다.(레이거 같은 느낌으로)
유의[편집 | 원본 편집]
UI는 캔버스 하위에 속할 때에만 보인다. 모든 UI는 캔버스의 자식 오브젝트가 되어야 한다.
Text UI[편집 | 원본 편집]
문자열을 표시하는 UI. 폰트는 라이센스 꼭 확인!
세부항목 | 설명 |
---|---|
Line Spacing | 행바꿈을 할 때 몇 줄을 띄울 것인가. |
Horizental overflow
Vertical overflow |
칸을 넘쳐나는 문자열을 포함되지 않는데, 이걸 조절하면 칸이 넘치는 문자열도 표현할 수 있다.
수평, 수직방향으로 옵션이 있다. 넘쳐날 때 줄바꿈을 할지, 자를지, 그대로 넘치게 표시할지 정한다. |
Best Fit | |
팁[편집 | 원본 편집]
Text 오브젝트에 Shadow컴포넌트(Add Component>UI>Effects>Shadow)를 추가해 다루면 가독성이 높아진다.
이미지 UI[편집 | 원본 편집]
소스이미지를 가져다 넣어야 한다. 이미지 파일을 끌어다 넣으려면, 이미지 타입을 Sprite로 바꾼 후에 넣어주어야 한다.
세부항목 | 설명 |
---|---|
Image Type | 이미지타일을 만들거나, 하나의 이미지를 조정하거나 Filled를 통해 이미지 트렌젝션을 할 수도 있겠다. 혹은, 쿨타임 효과 구현에 쓰인다. |
Set Native Size | 본래 이미지 크기와 동일하게 수정한다. |
버튼 UI[편집 | 원본 편집]
클릭이벤트를 가진 반응형 UI이다. TextUI를 포함하고 있다. 이미지 스크립트를 컴포넌트로 갖고 있다.
세부항목 | 설명 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Interactable | 반응 하느냐? | ||||||||||||
Transition |
|
배치[편집 | 원본 편집]
캔버스는 게임을 실행중인 화면의 크기에 따라 달라진다. 화면 크기에 따라 캔버스 안에 배치된 UI의 모습들도 달리 배치된다. 최근엔 다양한 기기로 게임을 플레이하기 때문에 고정픽셀 크기의 요소들은 사용하지 않는다.
스케일[편집 | 원본 편집]
다양한 기기에 적용하기[편집 | 원본 편집]
캔버스의 인스펙터 창에서 UI Scale Mode를 Scale With Screen Size로 한다. 화면크기에 따른 스케일을 사용한다.
Reference Resolution은 기준해상도를 의미한다.
방향 매치[편집 | 원본 편집]
일반적으로 기기에 따라 화면비율이 다르기도 하기 때문에 캔버스 크기와 같은 비율로 늘리다간 요소들이 화면 밖으로 빠져나가기도 한다. 인스펙터의 Match로 조절하는데, 폭을 기준으로 할지, 높이를 기준으로 할지 그 정도를 지정할 수 있다.
앵커[편집 | 원본 편집]
캔버스의 기준점을 앵커라 부른다. 캔버스의 어느 지점을 좌표계의 중심으로 잡을 것인가.
Rect Transform에서 앵커 프리셋을 볼 수 있다. shift를 누르고 보면 컴포넌트에서의 기준점도 정할 수 있다.(alt도 뭔가 있는데...)
앵커를 잘 이용하면 단말기마다 다른 화면 크기에서도 일관성을 유지할 수 있다.
게임메니저[편집 | 원본 편집]
UI를 코드로 다룰 수도 있다. 게임 규칙과 상태, UI에 띄울 데이터를 제어하는 코드를 게임메니저라 부른다.
하위요소를 불러오려면 기존 불러오는 방식 뒤에 Inchildren까지 붙여주어야 한다.
//기존 코드에 더해 다음의 코드가 최상단에 추가되어야 한다. UI를 사용한다는 의미.
using UnityEngine.UI; // UI관련 라이브러리.
using UnityEngine.SceneManagement; // 씬 관련 라이브러리.
public class GameManager : MonoBehaviour {
public 타입명 변수명; // 필요한 변수들을 준비한다.
public Text 변수명; // UI에 띄울 텍스트 컴포넌트. 내용변경을 위해 사용.
public GameObject 변수명; // 특정 상황에서 활성화할 텍스트(게임오브젝트). 활성, 비활성화로만 사용.
}
void Start() {
}
public void EndGame() {
}