「Unity/UIクリック」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→インナークラス形式) |
(→UIにクリックイベントを追加(その1)) |
||
(同じ利用者による、間の2版が非表示) | |||
行8: | 行8: | ||
public class ContentClickListener : MonoBehaviour, IPointerClickHandler | public class ContentClickListener : MonoBehaviour, IPointerClickHandler | ||
{ | { | ||
− | |||
public void OnPointerClick(PointerEventData eventData) | public void OnPointerClick(PointerEventData eventData) | ||
{ | { | ||
行16: | 行15: | ||
</pre> | </pre> | ||
参考:https://pafu-of-duck.hatenablog.com/entry/2018/08/18/224254 | 参考:https://pafu-of-duck.hatenablog.com/entry/2018/08/18/224254 | ||
− | |||
===インナークラス形式=== | ===インナークラス形式=== | ||
行52: | 行50: | ||
</pre> | </pre> | ||
− | + | ただし、ScrollView内のオブジェクトに適用すると、Scrollが無効化されてしまうので、ScrollViewの中で使う場合は、その1を推奨 |
2022年8月9日 (火) 23:33時点における最新版
UIにクリックイベントを追加(その1)
以下のクラスをClickableContent.csで作り、クリックさせたい、UI部品に予めGUIでAddComponentしておく。
using UnityEngine; using UnityEngine.EventSystems; public class ContentClickListener : MonoBehaviour, IPointerClickHandler { public void OnPointerClick(PointerEventData eventData) { Debug.Log("OnPointerClick!!"); } }
参考:https://pafu-of-duck.hatenablog.com/entry/2018/08/18/224254
インナークラス形式
ContentClickListenerはインナークラスでも動く。
using UnityEngine.EventSystems; using System; public class SettingScene : MonoBehaviour { public class ContentClickListener : MonoBehaviour, IPointerClickHandler { public void OnPointerClick(PointerEventData eventData) { Debug.Log("OnPointerClick!!"); } } void Start() { GameObject objText = GameObject.Find("/Canvas/Text"); ContentClickListener listener = objText.AddComponent<ContentClickListener>(); } }
UIにクリックイベントを追加(その2)
GameObject colorImage = GameObject.Find("ColorImage"); EventTrigger trigger = colorImage.AddComponent<EventTrigger>(); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerClick; entry.callback.AddListener(delegate { SetColor(colorName); }); trigger.triggers.Add(entry);
ただし、ScrollView内のオブジェクトに適用すると、Scrollが無効化されてしまうので、ScrollViewの中で使う場合は、その1を推奨