unity3d
ユーザーインターフェイスシステム(UI)
サーチ…
コードでイベントを購読する
デフォルトでは、インスペクタを使用してイベントを購読する必要がありますが、コードで行う方がよい場合もあります。この例では、それを処理するためにボタンのclickイベントに登録します。
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." );
}
}
さまざまなイベントIDが可能です:
- PointerEnter
- PointerExit
- PointerDown
- PointerUp
- PointerClick
- ドラッグ
- ドロップ
- スクロール
- UpdateSelected
- 選択
- 選択解除する
- 移動
- InitializePotentialDrag
- BeginDrag
- EndDrag
- 提出する
- キャンセル
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow