Unity 사용자 매뉴얼: UI 툴킷 데이터 바인딩
이 문서는 Unity의 UI 툴킷에서 데이터 바인딩 시스템의 작동 방식을 설명합니다. Unity를 사용하는 개발자들이 사용자 인터페이스(UI)를 효과적으로 구축하고 데이터와의 상호작용을 처리할 수 있도록 돕습니다.
바인딩 생성
데이터 바인딩을 생성하기 위해 Bind()
메서드를 호출합니다. 이 메서드는 UI에 추가되지 않은 계층 구조의 필드를 비동기적으로 추적하고 동기화합니다. 그 결과, 필드의 ‘value’ 프로퍼티는 즉시 업데이트될 수 없습니다.
변경 감지
바인딩 시스템은 Unity 오브젝트의 직렬화(serialized)된 데이터에 의존하여 변경을 감지합니다. - SerializedObject
와 하나 이상의 UI 요소 사이에 바인딩을 생성하면, 시스템은 다음 두 단계로 변경 사항을 폴링(polling)합니다. 1. 네이티브 코드에서 SerializedObject
를 직렬화하고 이를 폴링하여 직렬화된 바이트의 변경 사항을 감지합니다. 2. 변경 사항이 없으면 중단되고, 변경사항이 있을 경우 바인딩된 요소에 표시된 값과 프로퍼티를 비교해 필요한 경우 표시된 값을 업데이트합니다.
작업 스로틀링
일부 바인딩 작업은 단일 프레임에서 처리하기에 너무 길 수 있습니다. 작업이 단일 프레임 내에서 처리되면 UI가 일시적으로 응답하지 않을 수 있습니다. - 이러한 문제를 방지하기 위해, 바인딩 작업은 여러 프레임에 걸쳐 수행될 수 있습니다. - 예를 들어, 변경 사항을 감지하는 데 필요한 업데이트 수는 폴링하는 오브젝트의 수에 따라 달라질 수 있습니다.
바인딩 가능한 데이터 타입 및 필드
다양한 데이터 타입과 필드를 바인딩할 수 있으며, 이를 통해 UI 요소와 데이터 간의 연결을 쉽게 관리할 수 있습니다.
바인딩 예제
다음은 데이터 바인딩을 설정하는 방법에 대한 간단한 예제입니다.
기본적인 바인딩 예제
using UnityEngine;
using UnityEngine.UIElements;
public class MyComponent : MonoBehaviour
{
public void Start()
{
var serializedObject = new SerializedObject(targetObject);
var binding = new Binding<int>(serializedObject.FindProperty("myIntProperty"));
binding.Bind(myUIElement);
}
}
이 예제에서는 SerializedObject
를 사용하여 특정 프로퍼티와 UI 요소 간의 바인딩을 설정합니다.
추가 리소스
Unity의 UI 툴킷을 활용하여 빠르고 효율적인 UI 개발이 가능하니, 위 정보를 참고하여 실습해 보시기 바랍니다.