카테고리 없음

[개발일지] 유니티 UI: 데이터 바인딩(Data Binding)/이벤트 바인딩(Event Binding)

강자이 2024. 6. 18. 14:34

개요

유니티(Unity)에서 "바인딩(Binding)"은 다양한 맥락에서 사용될 수 있으며, 일반적으로 데이터 바인딩(Data Binding) 또는 이벤트 바인딩(Event Binding)을 의미합니다. 아래에서 두 가지 주요 종류의 바인딩에 대해 설명하겠습니다.

 


 

1. 데이터 바인딩(Data Binding)

데이터 바인딩은 UI 요소와 데이터 소스 간의 자동화된 데이터 흐름을 설정하는 것을 의미합니다. 예를 들어, 게임 내 캐릭터의 건강 상태를 UI의 건강 바(health bar)에 실시간으로 반영하고자 할 때 사용됩니다.

유니티에서 데이터 바인딩은 다음과 같이 구현할 수 있습니다:

 

  • UI 요소와 스크립트 변수 연결: UnityEngine.UI 네임스페이스를 사용하여 UI 요소를 스크립트 변수에 연결합니다.
  • Observer Pattern: 데이터 변경을 감지하고 UI를 업데이트하는 패턴을 사용합니다.
  • Unity의 새로운 UI Toolkit: 유니티의 UI Toolkit을 활용하여 더 쉽고 직관적으로 데이터 바인딩을 설정할 수 있습니다.
using UnityEngine;
using UnityEngine.UI;

public class HealthBar : MonoBehaviour
{
    public Slider healthSlider;
    public Character character; // 캐릭터 스크립트에서 헬스 상태를 가져옴

    void Update()
    {
        healthSlider.value = character.health;
    }
}

 

 

2. 이벤트 바인딩(Event Binding)

이벤트 바인딩은 특정 이벤트가 발생할 때 실행할 동작을 지정하는 것입니다. 유니티에서는 이벤트를 통해 사용자 입력, 충돌, 트리거 등의 다양한 이벤트에 반응할 수 있습니다.

유니티에서 이벤트 바인딩은 다음과 같이 구현할 수 있습니다:

 

  • 유니티 이벤트 시스템: UnityEngine.Events 네임스페이스를 사용하여 커스텀 이벤트와 리스너를 설정합니다.
  • 유니티 UI 버튼 이벤트: 버튼 클릭 등의 UI 이벤트에 대한 핸들러를 설정합니다.
using UnityEngine;
using UnityEngine.UI;

public class ButtonHandler : MonoBehaviour
{
    public Button myButton;

    void Start()
    {
        myButton.onClick.AddListener(OnButtonClick);
    }

    void OnButtonClick()
    {
        Debug.Log("Button clicked!");
    }
}