Unity 사용자 매뉴얼: 커스텀 컨트롤에 대한 커스텀 스타일 생성
개요
이 문서는 Unity의 UI 툴킷을 활용하여 커스텀 컨트롤을 정의하고 해당 컨트롤에 커스텀 스타일을 적용하는 방법을 설명합니다. 코드 예제와 함께 실습을 통해 기본 개념을 이해할 수 있습니다.
선행 조건
- Unity 에디터에 대한 기본 지식
- UI 툴킷 사용 경험
- C# 스크립팅 이해
단계별 가이드
1. 기본 프로젝트 설정
- 새로운 Unity 프로젝트를 생성합니다.
- "Create-custom-style-custom-control"이라는 이름의 폴더를 만듭니다.
2. 커스텀 컨트롤 스크립트 생성
- "ExampleElementCustomStyle" 폴더에
ExampleElementCustomStyle.cs
라는 이름의 C# 스크립트를 생성합니다. - 아래의 코드를 붙여넣습니다.
using UnityEngine;
using UnityEngine.UIElements;
namespace UIToolkitExamples
{
public class ExampleElementCustomStyle : VisualElement
{
public new class UxmlFactory : UxmlFactory<ExampleElementCustomStyle, UxmlTraits> { }
public new class UxmlTraits : VisualElement.UxmlTraits { }
static readonly CustomStyleProperty<Color> S_GradientFrom = new CustomStyleProperty<Color>("--gradient-from");
static readonly CustomStyleProperty<Color> S_GradientTo = new CustomStyleProperty<Color>("--gradient-to");
Texture2D m_Texture2D;
Image m_Image;
public ExampleElementCustomStyle()
{
m_Texture2D = new Texture2D(100, 100);
m_Image = new Image();
m_Image.image = m_Texture2D;
Add(m_Image);
RegisterCallback<CustomStyleResolvedEvent>(OnStylesResolved);
}
void OnStylesResolved(CustomStyleResolvedEvent evt)
{
Color from, to;
if (evt.customStyle.TryGetValue(S_GradientFrom, out from)
&& evt.customStyle.TryGetValue(S_GradientTo, out to))
{
GenerateGradient(from, to);
}
}
public void GenerateGradient(Color from, Color to)
{
for (int i = 0; i < m_Texture2D.width; ++i)
{
Color color = Color.Lerp(from, to, i / (float)m_Texture2D.width);
for (int j = 0; j < m_Texture2D.height; ++j)
{
m_Texture2D.SetPixel(i, j, color);
}
}
m_Texture2D.Apply();
m_Image.MarkDirtyRepaint();
}
}
}
3. 커스텀 스타일 정의
- "ExampleElementCustomStyle" 폴더에
ExampleElementCustomStyle.uss
라는 이름의 USS 파일을 생성합니다. - 아래의 코드를 붙여넣습니다.
ExampleElementCustomStyle {
--gradient-from: red;
--gradient-to: yellow;
}
4. UI 문서 생성
- "ExampleElementCustomStyle" 폴더에
ExampleElementCustomStyle.uxml
이라는 이름의 UI 문서를 생성합니다. - UXML 파일을 UI 빌더로 엽니다.
- Library > Project > UIToolkitExamples를 선택하고
ExampleElementCustomStyle
을 계층 창에 드래그합니다. - Viewport 창에 회색 사각형이 표시됩니다.
ExampleElementCustomStyle.uss
파일을 추가하여 커스텀 스타일을 적용합니다.
추가 리소스
- 커스텀 컨트롤 만들기
- BEM 표준
- 바인드 가능한 커스텀 컨트롤 만들기
- UI 스타일링
결론
위의 단계들을 따르면 Unity의 UI 툴킷을 사용하여 커스텀 스타일이 적용된 커스텀 컨트롤을 만들 수 있습니다. 다양한 색상 변수와 스타일 옵션을 실험하여 보다 풍부한 사용자 인터페이스를 구성할 수 있습니다.