ClickEvent (クリックイベント) は、ユーザーが VisualElement の上でマウスの左ボタン (またはポインティングデバイスの第一ボタン) をクリックすると発生します。
クリックは、同じ VisualElement 上でポインターを押下するイベントと、それに続いてポインターが上がるイベントから構成されます。ポインターの押下と上昇のイベントが同じ VisualElement 上で発生する限り、ポインターは 2 つのイベント間を移動することが可能です。
このイベントは、ボタン以外のビジュアル要素のクリックを検出するために使用できます。例えば、 Toggle
コントロールの実装では、ClickEvent
を使用してチェックマークを表示または非表示にしたり、コントロールの値を変更したりします。
ClickEvent
の基本クラスは、PointerEventBase です。より詳細な情報は、Pointer Events のドキュメントも参照してください。
イベント | 説明 | 下降伝播 | 上昇伝播 | キャンセル可能 |
---|---|---|---|---|
ClickEvent | マウスの左ボタンがクリックされると発生します。 | ✔ | ✔ | ✔ |
ClickEvent
は固有のプロパティを持たず、すべてのプロパティを基本クラスから継承します。プロパティの一覧は、ポインターイベント ページを参照してください。
Unity は、マウスの左ボタンがビジュアル要素上でクリックされると、このイベントを送信します。
ターゲット
: クリックが発生したときにマウスまたはポインティングデバイスの下にある要素。
以下の例では、ビジュアル要素の ClickEvent
を登録します。
btnClose.RegisterCallback<ClickEvent, VisualElement>(Clicked, asset); // asset is the root visual element that will be closed
private void Clicked(ClickEvent evt, VisualElement root)
{
root.ShowVisualElement(false);
}
次の例は、色付きのビジュアル要素の ClickEvent に反応する方法を示しています。要素がクリックされると、その色は新しい、ランダムな色に変わります。
この例の動作を実際に見るには、以下を行います。
using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;
public class ClickEventExampleWindow : EditorWindow
{
[MenuItem("Window/UI Toolkit/ClickEventExample")]
public static void ShowExample()
{
var wnd = GetWindow<ClickEventExampleWindow>();
wnd.titleContent = new GUIContent("Click Event Example");
}
public void CreateGUI()
{
// Create a few different colored boxes
for (int i = 0; i < 4; i++)
{
// Create VisualElement with random background color
var newBox = new VisualElement() { style = { flexGrow = 1, backgroundColor = GetRandomColor() } };
rootVisualElement.Add(newBox);
// Register a click event to the visual element to change the background color to a new color
newBox.RegisterCallback<ClickEvent>(OnBoxClicked);
}
}
private void OnBoxClicked(ClickEvent evt)
{
// Only perform this action at the target, not in a parent
if (evt.propagationPhase != PropagationPhase.AtTarget)
return;
// Assign a random new color
var targetBox = evt.target as VisualElement;
targetBox.style.backgroundColor = GetRandomColor();
}
private Color GetRandomColor()
{
return new Color(Random.Range(0, 1f), Random.Range(0, 1f), Random.Range(0, 1f));
}
}
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.