c# - 如何统一禁用/启用特定的 EventTrigger
问题描述
我有一个附加到图像的 5 个 EventTrigger。有
“开始拖动”、“拖动”、“结束拖动”、“指针回车”。"指针退出"
喜欢这张图片
我可以一次禁用所有这些
eventTrigger.enabled = false;
但是我想要实现的只是禁用“开始拖动”事件。
有谁知道该怎么做?
解决方案
UIDragableScript
而是插上一面旗帜。
public bool allowBeginDrag;
设置布尔值。
indicatorWidgetObject.GetComponent<UIDragableScript>().allowBeginDrag = false;
然后,使UIdragableScript.BeginDrag
依赖它。
UIdragableScript.BeginDrag()
{
if(!allowBeginDrag) return;
// ...
}
您可能需要考虑使用IDragXHandler
和IPointerXHandler
接口而不是EventTrigger
将逻辑实现到脚本本身中:
UIDragableScript
public class UIDragableScript : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
public bool allowBeginDrag;
public void OnBeginDrag(PointerEventData eventData)
{
if(!allowBeginDrag) return;
// ...
}
public void OnDrag(PointerEventData eventData)
{
// ...
}
public void OnEndDrag(PointerEventData eventData)
{
// ...
}
}
UIHoverScript
public class UIHoverScript : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
public void OnPointerEnter(PointerEventData pointerEventData)
{
// ...
}
//Detect when Cursor leaves the GameObject
public void OnPointerExit(PointerEventData pointerEventData)
{
// ...
}
}
确保
EventSystem
场景中存在允许点击/悬停/等检测。对于非 UI 游戏对象的点击/悬停/等检测,请确保将 aPhysicsRaycaster
附加到Camera
. (来自IPointerClickHandler)
然后,根本不要使用EventTrigger
。
推荐阅读
- sql - 计算 json 对象中键的出现次数 - IMPALA/HIVE
- python - Python - 运行 docker-compose up 时“import boto3”的 ValueError
- rust - Rust bindgen 忽略包含头文件中的特定包含
- flutter - Flutter 2.2.3:参数类型“动画”
'不能分配给参数类型'动画 ' - r - 使用重新排序对 ggplot 列进行排序不起作用
- python - Python:如何将列标题“降级”为行并重命名列标题(不替换原始列标题)?
- powerbi - 有没有办法在不给出城镇名称的情况下将纬度和经度聚类到 Power BI 中最近的城镇?
- javascript - 当我创建一个条目是变量的对象时,它叫什么?
- php - 获取值时使用 ArcValue 的 pisdk php
- installation - Ubuntu 20.4 Asus Tuf Dash F15 无法安装 Nvidia 驱动程序