unity3d
사용자 인터페이스 시스템 (UI)
수색…
코드에서 이벤트 구독
기본적으로 관리자는 inspector를 사용하여 이벤트를 구독해야하지만 때로는 코드에서 수행하는 것이 좋습니다. 이 예제에서는 버튼의 클릭 이벤트를 처리하기 위해 버튼의 이벤트를 구독합니다.
using UnityEngine;
using UnityEngine.UI;
[RequireComponent(typeof(Button))]
public class AutomaticClickHandler : MonoBehaviour
{
private void Awake()
{
var button = this.GetComponent<Button>();
button.onClick.AddListener(HandleClick);
}
private void HandleClick()
{
Debug.Log("AutomaticClickHandler.HandleClick()", this);
}
}
UI 구성 요소는 대개 기본 수신기를 쉽게 제공합니다.
- Button : onClick
- 드롭 다운 : onValueChanged
- InputField : onEndEdit , onValidateInput , onValueChanged
- 스크롤 막대 : onValueChanged
- ScrollRect : onValueChanged
- 슬라이더 : onValueChanged
- 토글 : onValueChanged
마우스 리스너 추가하기
때로는 구성 요소가 제공하지 않는 특정 이벤트, 특히 마우스 이벤트에 리스너를 추가하려고합니다. 그렇게하려면 EventTrigger
구성 요소를 사용하여 직접 추가해야합니다.
using UnityEngine;
using UnityEngine.EventSystems;
[RequireComponent(typeof( EventTrigger ))]
public class CustomListenersExample : MonoBehaviour
{
void Start( )
{
EventTrigger eventTrigger = GetComponent<EventTrigger>( );
EventTrigger.Entry entry = new EventTrigger.Entry( );
entry.eventID = EventTriggerType.PointerDown;
entry.callback.AddListener( ( data ) => { OnPointerDownDelegate( (PointerEventData)data ); } );
eventTrigger.triggers.Add( entry );
}
public void OnPointerDownDelegate( PointerEventData data )
{
Debug.Log( "OnPointerDownDelegate called." );
}
}
다양한 eventID가 가능합니다 :
- 포인터 입력
- PointerExit
- PointerDown
- 포인터
- PointerClick
- 견인
- 하락
- 스크롤
- UpdateSelected
- 고르다
- 선택 취소
- 움직임
- InitializePotentialDrag
- BeginDrag
- EndDrag
- 제출
- 취소
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow