Version: Unity 6.0 (6000.0)
언어 : 한국어
런타임 데이터 바인딩
C# 스크립트에서 런타임 바인딩 생성

런타임 바인딩 시작

버전: 6000.0+

런타임 데이터 바인딩을 생성하는 방법을 배우고 싶으신가요? 다음 예시를 사용하여 시작하십시오. 이 예시는 데이터 소스 에셋을 생성하고__ UI__(사용자 인터페이스) 사용자가 애플리케이션과 상호 작용하도록 해 줍니다. Unity는 현재 3개의 UI 시스템을 지원합니다. 자세한 정보
See in Glossary
빌더를 사용하여 데이터 소스를 UI에 바인딩합니다.

UI 빌더에서 런타임 바인딩을 설정하려면 다음 단계를 따르십시오.

  1. UI 컨트롤의 인스펙터 패널에서 데이터 소스 경로와 데이터 소스를 정의합니다.
  2. UI 컨트롤의 프로퍼티를 데이터 소스 에셋의 프로퍼티에 바인딩합니다.
  3. 데이터 소스와 UI 간에 변경 사항이 복제되는 방식을 설정하려면 바인딩 모드를 정의합니다.
  4. 데이터 소스와 UI 간에 변경 사항이 복제될 때 설정할 업데이트 트리거를 정의합니다.

개요 예시

이 예시에서는 문자열 프로퍼티가 포함된 데이터 소스 에셋을 생성하고 UI 빌더에서 레이블 컨트롤의 Text 프로퍼티에 바인딩합니다. 데이터 소스 에셋에서 문자열 프로퍼티를 변경하면 레이블의 텍스트가 변경됩니다.

런타임 바인딩 예시
런타임 바인딩 예시

이 예시에서 만든 완성된 파일은 이 GitHub 저장소에서 찾을 수 있습니다.

선행 조건

이 가이드는 Unity 에디터, UI 툴킷, C# 스크립팅에 익숙한 개발자를 위한 가이드입니다. 시작하기 전에 먼저 다음을 숙지하십시오.

데이터 소스 에셋 생성

바인딩하려는 프로퍼티를 포함하는 데이터 소스 에셋을 생성합니다. 이 예시에서는 string 프로퍼티가 포함된 ExampleObject라는 ScriptableObject 에셋을 생성합니다.

  1. 템플릿을 사용하여 Unity에서 프로젝트를 생성합니다.
  2. 프로젝트의 Assets 폴더에 다음 내용을 포함하는 ExampleObject.cs라는 C# 스크립트를 생성합니다.
using Unity.Properties;
using UnityEngine;
using UnityEngine.UIElements;

#if UNITY_EDITOR
using UnityEditor;
#endif

[CreateAssetMenu]
public class ExampleObject : ScriptableObject
{
    [Header("Simple binding")]
    public string simpleLabel = "Hello World!";
}

예시 오브젝트 에셋 생성

  1. 메뉴에서 Assets > Create > Example Object를 선택합니다. 그러면 프로젝트의 Assets 폴더에 에셋이 생성됩니다.
  2. 에셋의 이름을 ExampleObject.asset으로 변경합니다.

UI 만들기

이전 단계에서 생성한 데이터 소스 에셋에 바인딩하는 UI를 생성합니다. 이 예시에서는 레이블이 포함된 UXML 파일을 생성합니다.

  1. 프로젝트의 Assets 폴더에서 ExampleObject.uxml이라는 UXML 파일을 생성합니다.
  2. ExampleObject.uxml 파일을 더블 클릭하여 UI 빌더에서 엽니다.
  3. 계층 구조 패널에서 Label 컨트롤을 추가합니다.

데이터 소스에 Label 바인딩

이전 단계에서 만든 데이터 소스 에셋에 UI를 바인딩합니다.

  1. Label의 인스펙터 패널에 있는 Bindings > Data Source > Object 목록에서 ExampleObject를 선택합니다.

  2. Data Source Path 목록에서 simpleLabel을 선택합니다.

    VisualElement 바인딩 데이터 소스 설정

  3. Text 프로퍼티를 오른쪽 클릭하고 Add binding을 선택합니다.

    Add binding

  4. Binding Mode 목록에서 To Target을 선택합니다. 이렇게 하면 데이터 소스가 변경될 때 UI가 업데이트됩니다.

  5. Advanced Settings > Update Trigger 목록에서 기본 설정인 On Source Changed를 선택합니다. 이렇게 하면 데이터 소스가 변경될 때 UI가 업데이트됩니다.

    바인딩 모드 및 업데이트 트리거 설정

  6. Add binding을 선택하여 변경 사항을 저장합니다.

  7. 저장한 뒤 UI 빌더를 닫습니다. ExampleObject.uxml 파일은 다음과 같습니다.

<engine:UXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:engine="UnityEngine.UIElements" 
xmlns:editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
    <engine:Label text="Label" data-source="ExampleObject.asset" data-source-path="simpleLabel">
        <Bindings>
            <engine:DataBinding property="text" binding-mode="ToTarget" />
        </Bindings>
    </engine:Label>
</engine:UXML>

UI 빌더 미리 보기 모드에서 바인딩 테스트

데이터 소스 에셋에서 LabelText의 레이블 텍스트를 업데이트하면 UI에서 변경 사항이 모사되는 것을 확인할 수 있습니다.

  1. 프로젝트의 Assets 폴더에서 ExampleObject.asset을 선택합니다.
  2. 인스펙터 창의 Simple Label 필드에 임의의 텍스트를 입력합니다. UI 빌더 뷰포트에서 Label 텍스트가 입력한 텍스트로 변경됩니다.

추가 리소스

런타임 데이터 바인딩
C# 스크립트에서 런타임 바인딩 생성
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961