当前位置: 首页 > wzjs >正文

专业的深圳网站建设百度地图导航网页版

专业的深圳网站建设,百度地图导航网页版,电商购物网站建设,在线观看视频的免费网站主要功能说明: ​长按检测:通过记录指针按下的时间,判断是否达到 longClickTime,从而触发长按事件。​状态管理:使用 StateEnum 枚举管理点击项的当前状态(未按下、按下等待长按、长按已触发)。…

 

主要功能说明:

  1. 长按检测:通过记录指针按下的时间,判断是否达到 longClickTime,从而触发长按事件。
  2. 状态管理:使用 StateEnum 枚举管理点击项的当前状态(未按下、按下等待长按、长按已触发)。
  3. 事件回调:通过实现 IPointerDownHandlerIPointerUpHandler 和 ICancelHandler 接口,处理 Unity UI 的指针事件。
  4. 监听器事件:用于定义长按事件的监听器,外部类可以注册事件以处理长按逻辑。

使用场景:

  • 适用于需要检测长按操作的 UI 元素,例如长按删除、长按编辑等交互场景。
/****************************************************文件:LongClickable.cs作者:Edision日期:#CreateTime#功能:长按
*****************************************************/
using UnityEngine;
using UnityEngine.UI;
using System;
using UnityEngine.EventSystems;/// <summary>
/// 用于将“长按点击”事件委托给事件监听器
/// 需要一个可点击的图形组件(可以是透明度为零的图像)以接收 OnPointerDown、OnPointerUp 等事件。
/// 其他 UI 元素不应覆盖此组件,以确保能够接收指针回调。
/// </summary>
[RequireComponent(typeof(Graphic))]
public class LongClickable : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{public float longClickTime = .7f; // 用户需要按住点击的时间(秒)以触发长按事件public event Action<LongClickable> OnLongClick; // 定义长按事件public StateEnum State { get { return _State; } } // 当前点击项的状态float _PressedTime; // 指针按下时的时间StateEnum _State; // 当前点击项的状态/// <summary>/// 枚举表示点击项的不同状态/// </summary>public enum StateEnum{NOT_PRESSING, // 未按下PRESSING_WAITING_FOR_LONG_CLICK, // 按下,等待是否触发长按PRESSING_AFTER_LONG_CLICK // 按下,长按已触发}/// <summary>/// 每帧调用,用于检查是否达到长按时间/// </summary>void Update(){if (_State == StateEnum.PRESSING_WAITING_FOR_LONG_CLICK){// 检查自指针按下以来的时间是否超过长按时间if (Time.unscaledTime - _PressedTime >= longClickTime){_State = StateEnum.PRESSING_AFTER_LONG_CLICK; // 更新状态以指示长按已触发OnLongClick?.Invoke(this); // 触发长按事件}}}#region Unity UI 事件处理回调/// <summary>/// 当指针按下时调用/// </summary>/// <param name="eventData">与指针事件相关的数据</param>public void OnPointerDown(PointerEventData eventData){if (eventData.button != PointerEventData.InputButton.Left) // 确保仅处理左键点击return;_State = StateEnum.PRESSING_WAITING_FOR_LONG_CLICK; // 更新状态以指示项被按下_PressedTime = Time.unscaledTime; // 记录指针按下的时间}/// <summary>/// 当指针松开时调用/// </summary>/// <param name="eventData">与指针事件相关的数据</param>public void OnPointerUp(PointerEventData eventData){if (eventData.button != PointerEventData.InputButton.Left) // 确保仅处理左键松开return;_State = StateEnum.NOT_PRESSING; // 更新状态以指示项未被按下}#endregion
}
/****************************************************文件:LongClickableItem.cs作者:Edision日期:#CreateTime#功能:UI 元素
*****************************************************/
using UnityEngine;[RequireComponent(typeof(LongClickable))]
public class LongClickableItem : MonoBehaviour
{private void Awake(){LongClickable item = GetComponent<LongClickable>();item.OnLongClick += HandleLongClick;}void HandleLongClick(LongClickable clickedItem){Debug.Log("长按事件触发!");}
}

http://www.dtcms.com/wzjs/266004.html

相关文章:

  • o2o网站设计方案公司宣传软文
  • 智联招聘网站怎么做两份简历模板吉林网络推广公司
  • 企业网站每天更新seo外包资讯
  • 做网页怎么建站点免费加客源软件
  • 松江网站开发培训学校广州疫情最新消息
  • 企业宣传网站系统建设方案网站搭建需要什么
  • 网站域名注册哪个好无锡百度信息流
  • 网站账号注册程序站长检测工具
  • 深圳精美网站设计百度平台商家客服
  • wordpress小程序模板seo推广是什么意思
  • 重庆网络建站推广宣传文案
  • 网站开发确认书惠州seo排名
  • 工具类网站怎么优化seo百度客服人工在线咨询电话
  • 盐城网站建设招聘关键词优化报价怎么样
  • 南京做公司网站临沂做网站推广的公司
  • 俄罗斯b2b常用网站宜昌seo
  • 手机网站js触屏滑动图片特效友情链接作用
  • 河南郑州汽车网网站建设百度手机关键词排名工具
  • 政府网站建设 问题如何在百度发布文章
  • 网站建设推荐中企动力网站建站模板
  • 广州比较好的网站建设公司百度域名查询
  • 网站信息化建设具体内容廊坊关键词快速排名
  • 电影网站做淘宝联盟外包公司和劳务派遣的区别
  • 网站后台的关键词全网网络营销推广
  • 网站开发讲座近期发生的新闻
  • 用python语言做网站今日资讯最新消息
  • 做网站如何赚流量钱安卓优化神器
  • 网站上如何设置行间距广州网站推广软件
  • 怎么做网站流量北京网站建设公司哪家好
  • 建设网站筛选网站供应商营销型制作网站公司