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

DeepSeek教unity------UI元素长按响应

 

主要功能说明:

  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("长按事件触发!");}
}

相关文章:

DeepSeek教unity------UI元素长按响应

主要功能说明&#xff1a; ​长按检测&#xff1a;通过记录指针按下的时间&#xff0c;判断是否达到 longClickTime&#xff0c;从而触发长按事件。​状态管理&#xff1a;使用 StateEnum 枚举管理点击项的当前状态&#xff08;未按下、按下等待长按、长按已触发&#xff09;。…...

virtualbox安装ubuntu,配置静态ip

一.安装virtualbox和ubuntu 在VirtualBox中安装无界面版Ubuntu&#xff08;即Ubuntu Server&#xff09;的步骤如下&#xff1a; 准备工作 下载Ubuntu Server镜像&#xff1a;从Ubuntu官网 https://ubuntu.com/download/server 下载ISO文件。 安装VirtualBox&#xff1a;确保…...

比较Spring AOP和AspectJ

1. 介绍 当前有多个可用的AOP库&#xff0c;这些库必须能够回答许多问题&#xff1a; 它与我现有的或新的应用程序兼容吗&#xff1f;在哪里可以实施AOP&#xff1f;它与我的应用程序集成的速度有多快&#xff1f;性能开销是多少&#xff1f; 在本文中&#xff0c;我们将着眼…...

DeepSeek掘金——DeepSeek R1驱动的PDF机器人

DeepSeek掘金——DeepSeek R1驱动的PDF机器人 本指南将引导你使用DeepSeek R1 + RAG构建一个功能性的PDF聊天机器人。逐步学习如何增强AI检索能力,并创建一个能够高效处理和响应文档查询的智能聊天机器人。 本指南将引导你使用DeepSeek R1 + RAG构建一个功能性的PDF聊天机器人…...

大模型能给舆情分析带来哪些突破?

大模型在舆情分析领域带来了多方面的突破&#xff0c;具体体现在以下几个方面&#xff1a; 1.提升分析精度与效率 大模型通过深度学习和自然语言处理技术&#xff0c;能够高效地处理海量数据&#xff0c;并从中提取关键信息。例如&#xff0c;大模型可以自动识别文本中的情感倾…...

C++实现3D(EasyX)详细教程

一、关于3D 我们看见&#xff0c;这两个三角形是相似的&#xff0c;因此计算很简单 若相对物体的方向是斜的&#xff0c;计算三角函数即可 不会的看代码 二、EasyX简介 initgraph(长,宽) 打开绘图 或initgraph(长,宽…...

Mysql100道高频面试题

一、基础概念 1. 什么是数据库&#xff1f;DBMS的作用是什么&#xff1f; 数据库&#xff1a;是按照数据结构来组织、存储和管理数据的仓库。它允许用户高效地访问和管理数据。 DBMS&#xff08;数据库管理系统&#xff09;&#xff1a;是一种软件系统&#xff0c;用于创建和…...

TCP长连接与短连接

TCP长连接与短连接 TCP&#xff08;传输控制协议&#xff09;中的长连接和短连接是两种不同的连接管理方式&#xff0c;各有优缺点&#xff1a; 短连接 短连接是指客户端与服务器完成一次数据交换后就断开连接。下次需要通信时&#xff0c;再重新建立连接。 特点&#xff1…...

【ISP】AF自动对焦

自动对焦方案主要有两种&#xff1a; 主动式对焦&#xff1a;通过TOF、双目进行主动测距&#xff0c;然后使用tuning数据进行对焦。 被动式对焦&#xff1a;利用sensor内容算法进行对焦。 被动式对焦有两种主要的方法&#xff1a; 反差对焦&#xff1a;通过前后推拉镜头找到…...

基于Python Django的人脸识别上课考勤系统(附源码,部署)

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…...

探索Elasticsearch:认识与安装

目录 Elasticsearch的简介 Elasticsearch的定位 安装Elasticsearch 安装Kibana Elasticsearch的简介 Elasticsearch 是一款基于Apache Lucene的开源搜索引擎&#xff0c;在现代数据管理和分析领域占据重要地位。它以其高效的全文搜索、实时数据分析能力和灵活的分布式架构著…...

什么是DevOps

**DevOps** 是一种结合软件开发&#xff08;**Development&#xff09;和运维&#xff08;**Operations&#xff09;的方法论和文化&#xff0c;旨在通过自动化、协作和持续改进&#xff0c;缩短软件交付周期&#xff0c;提高系统可靠性和团队效率。其核心目标是打破开发与运维…...

Java类加载机制 双亲委派机制 八股速记版

JVM类加载机制是Java实现跨平台特性的核心机制之一&#xff0c;整个过程可分为以下五个阶段&#xff1a; 一、类加载流程 加载&#xff08;Loading&#xff09; 通过全限定名获取二进制字节流将字节流转换为运行时数据结构生成对应的java.lang.Class对象 验证&#xff08;V…...

DeepSeek开源周Day6:DeepSeek V3、R1 推理系统深度解析,技术突破与行业启示

DeepSeek 在开源周第六天再次发文&#xff0c;中文原文、官方号在知乎 DeepSeek - 知乎DeepSeek-V3 / R1 推理系统概览 - 知乎deepseek-ai/open-infra-index: Production-tested AI infrastructure tools for efficient AGI development and community-driven innovation 引言 …...

校园快递助手小程序毕业系统设计

系统功能介绍 管理员端 1&#xff09;登录&#xff1a;输入账号密码进行登录 2&#xff09;用户管理&#xff1a;查看编辑添加删除 学生信息 3&#xff09;寄件包裹管理&#xff1a;查看所有的包裹信息&#xff0c;及物流信息 4&#xff09;待取件信息&#xff1a;查看已到达的…...

macOS - 使用 tmux

文章目录 安装 tmux使用更多快捷键说明 安装 tmux brew install tmux使用 在终端输入 tmux 进入 tmux 界面&#xff0c;然后 输入 Control Option B 进入交互模式 输入 % 左右分栏&#xff0c;" 上下分割 上一个窗格&#xff1a;{&#xff0c;下一个&#xff1a;} PS…...

【网络安全 | 渗透测试】GraphQL精讲一:基础知识

未经许可,不得转载, 文章目录 GraphQL 定义GraphQL 工作原理GraphQL 模式GraphQL 查询GraphQL 变更(Mutations)查询(Queries)和变更(Mutations)的组成部分字段(Fields)参数(Arguments)变量别名(Aliases)片段(Fragments)订阅(Subscriptions)自省(Introspecti…...

配置后端验证功能之validation

哈喽&#xff0c;好久不见。最近项目内网开发导致断更了好久。今天介绍一个简单且有意思的开发技巧吧。之前用过validation后端验证功能但没进一步了解&#xff0c;都只是简单用一下。假如开发中要求传参必须按照规则 不能毫无底线什么都能传&#xff0c;本篇介绍的就是针对此功…...

C# 多线程

概述 进程和线程 进程&#xff1a;指在系统中运行的一个应用程序。 线程&#xff1a;进程中的一个执行任务。一个进程至少有一个线程&#xff0c;一个进程可以有多个线程&#xff0c;多个线程可共享数据。 多线程 多线程&#xff1a;在一个程序中同时运行多个线程&#xff0…...

钉钉MAKE AI生态大会思考

1. 核心特性 1.1 底层模型开放 除原有模型通义千问外,新接入猎户星空、智普、MinMax、月之暗面、百川智能、零一万物。 1.2 AI搜索 AI搜索贯通企业和个人散落在各地的知识(聊天记录、文档、会议、日程、知识库、项目等),通过大模型对知识逻辑化,直接生成搜索的答案,并…...

自然语言处理:文本表示

介绍 大家好&#xff0c;博主又来给大家分享知识了。今天给大家分享的内容是自然语言处理中的文本表示。 在当今数字化信息爆炸的时代&#xff0c;自然语言处理作为人工智能领域的重要分支&#xff0c;发挥着越来越关键的作用。 而文本表示&#xff0c;则是自然语言处理的基…...

flutter 网络请求封装与json序列化与反序列化

一、用到的工具库 网络请求库 dioflutter pub add diojson序列化与反序列化库 json_annotation//终端直接键入下命令安装 flutter pub add json_annotation dev:build_runner dev:json_serializable二、返回结果泛化封装 以 https://www.wanandroid.com/ api 接口返回结果为例…...

生成网页链接二维码

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>生成二维码</title><script src"http…...

java关键字-instanceof

主要作用 A instanceof B主要判断以下三个内容&#xff08;即左边的类型A能否转换为右边的B&#xff09;&#xff1a; 判断对象A是否是B类的对象&#xff1b;判断对象A实现了B接口&#xff1b;判断对象A是否继承了B类&#xff1b; A表示对象&#xff0c;B表示接口/类&#x…...

验证码识别:一文掌握手机验证码的自动化处理

文章目录 一、获取手机验证码1.1 通过短信接收验证码1.2 使用第三方短信接收服务1.3 使用ADB读取手机短信1.4 通过API获取验证码1.5 通过邮件接收验证码二、解析和提取验证码2.1 正则表达式提取2.2 JSON解析三、自动化输入验证码3.1 使用Selenium自动化Web应用3.2 使用Appium自…...

Uppy - 免费开源、功能强大的新一代 web 文件上传组件,支持集成到 Vue 项目

Uppy 这个优质的前端组件&#xff0c;可以解决几乎所有的文件上传问题&#xff0c;最近发布了 TS 重写的 4.0 新版本&#xff0c;实用性更强了。 Uppy 是一个 UI 外观时尚、模块化的 JavaScript 文件上传组件&#xff0c;这个组件可以与任何 web 技术栈集成&#xff0c;不仅轻…...

神经网络参数量计算

算一个只有两层的神经网络的参数量&#xff0c;我们需要考虑两层之间的连接权重和偏置项。以下是详细的计算步骤&#xff1a; 网络结构 输入层&#xff08;第一层&#xff09;&#xff1a; 有 2 个神经元。 输出层&#xff08;第二层&#xff09;&#xff1a; 有 3 个神经元。…...

如何为Java面试准备项目经验

1 提出问题 应届生朋友或Java程序员在找Java方面的工作时&#xff0c;一定会需要准备Java项目经验&#xff0c;但事实上不少求职者&#xff0c;是没有项目经验&#xff0c;或者只具有开源社区等的学习项目经验&#xff0c;这样的话&#xff0c;就很有可能在面试时无法有效地证…...

DeepSeek 与云原生后端:AI 赋能现代应用架构

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 在当今快速发展的互联网时代&#xff0c;云原生&#xff08;Cloud Native&#xff09;架构已成为后端开发的主流趋势。云…...

自定义异常

在 Java 中&#xff0c;自定义异常是指根据特定需求创建的异常类。通过自定义异常&#xff0c;可以更好地表示应用程序中的特定错误情况&#xff0c;并提供更清晰的错误信息。以下是关于自定义异常的详细介绍和实现方法&#xff1a; 一、为什么需要自定义异常&#xff1f; 明确…...

题解:洛谷 P2199 最后的迷宫

题目https://www.luogu.com.cn/problem/P2199 显然&#xff0c;数据最大 &#xff0c;数组我们开不下&#xff0c;动态开数组。 对于每一个查询&#xff0c;从起点开始&#xff0c;走一步判断是否能看到火焰杯。 如果已经没法走了&#xff0c;直接拆墙&#xff0c;输出 Poor…...

JDK包含内容的正确说法及API文档下载

JDK包含内容的正确说法及API文档下载 正确说法&#xff1a;JDK包含JRE和JDK开发工具&#xff0c;而JRE主要包含JVM和核心类库。 因为 旧版 JRE&#xff08;Java 8 及之前&#xff09;&#xff1a;确实包含 Java 插件&#xff08;Applet&#xff09; 和 Java Web Start&#xf…...

CTF-web: 查看python代码抽象语法树

抽象语法树&#xff08;Abstract Syntax Tree&#xff0c;简称 AST&#xff09;是源代码的树状表示&#xff0c;展示了代码的语法结构。在 Python 中&#xff0c;ast 模块可以帮助你解析和操作 Python 代码的 AST。 1. 使用 ast 模块解析 Python 代码 我们可以使用 ast.parse …...

前端学习——HTML

VSCode常用快捷键 代码格式化&#xff1a;ShiftAltF 向上或向下移动一行&#xff1a;AltUp或AltDown 快速复制一行代码&#xff1a;ShiftAltUp或者ShiftAltDown 快速替换&#xff1a;CtrlH HTML标签 文本标签 定义着重文字 定义粗体文字 定义斜体文字 加重语气 删除字 无特…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_open_file

ngx_open_file 定义在src/os/unix/ngx_files.h #define ngx_open_file(name, mode, create, access) \open((const char *) name, mode|create, access)#define NGX_FILE_RDONLY O_RDONLY #define NGX_FILE_WRONLY O_WRONLY #de…...

Window C++模拟单片机控制TFT屏幕和SD卡

因为每次都要做大量的测试&#xff0c;上传到单片机实在是太费事&#xff0c;所以写了这个模拟项目用来测试 很多方法我没有补充进去&#xff0c;因为太多了&#xff0c;如果有需要请自行补充 stdafx.h #pragma once#include<iostream> #include<atlimage.h> #in…...

记录一次FastDFS内部文件迁移过程

场景&#xff1a;dockr部署下的一个DFS环境&#xff0c;切换环境将原DFS内的所有文件全部迁移走&#xff0c;老版本的镜像包现不可使用&#xff0c;所以重新搭建并迁移外挂包下的所有文件 一、定位存储路径及备份 ​确定容器内存储路径​ 根据使用的Docker镜像不同&#xff0…...

【数据挖掘】Matplotlib

Matplotlib 是 Python 最常用的 数据可视化 库之一&#xff0c;在数据挖掘过程中&#xff0c;主要用于 数据探索 (EDA)、趋势分析、模式识别 和 结果展示。 &#x1f4cc; 1. Matplotlib 基础 1.1 安装 & 导入 # 如果未安装 Matplotlib&#xff0c;请先安装 # pip instal…...

Python数据序列化技术:高效存储与传输的最佳实践

在现代软件开发中&#xff0c;数据序列化是一个关键环节&#xff0c;它允许我们将复杂的数据结构转换为可存储或可传输的格式&#xff0c;以便在不同的系统或程序之间共享和持久化。Python提供了多种数据序列化技术&#xff0c;每种技术都有其独特的性能优势和适用场景。本文将…...

大模型function calling:让AI函数调用更智能、更高效

大模型function calling&#xff1a;让AI函数调用更智能、更高效 随着大语言模型&#xff08;LLM&#xff09;的快速发展&#xff0c;其在实际应用中的能力越来越受到关注。Function Calling 是一种新兴的技术&#xff0c;允许大模型与外部工具或API进行交互&#xff0c;从而扩…...

HarmonyOS学习第12天:解锁表格布局的奥秘

表格布局初相识 不知不觉&#xff0c;我们在 HarmonyOS 的学习旅程中已经走到了第 12 天。在之前的学习里&#xff0c;我们逐步掌握了 HarmonyOS 开发的各种基础与核心技能&#xff0c;比如组件的基本使用、布局的初步搭建等&#xff0c;这些知识就像一块块基石&#xff0c;为我…...

基于 MetaGPT 自部署一个类似 MGX 的多智能体协作框架

MGX&#xff08;由 MetaGPT 团队开发的 mgx.dev&#xff09;是一个收费的多智能体编程平台&#xff0c;提供从需求分析到代码生成、测试和修复的全流程自动化功能。虽然 MGX 本身需要付费&#xff0c;但您可以通过免费服务和开源项目搭建一个类似的功能。以下是一个分步骤的实现…...

Cargo, the Rust package manager, is not installed or is not on PATH.

今天在Windows操作系统上通过pip 安装jupyter的时候遇到这个报错&#xff0c;Cargo, the Rust package manager, is not installed or is not on PATH.。 解决办法 官网&#xff1a;https://rustup.rs/# 下载&#xff1a;https://win.rustup.rs/x86_64 安装完成之后&#xff0c…...

Spring AI:开启Java开发的智能新时代

目录 一、引言二、什么是 Spring AI2.1 Spring AI 的背景2.2 Spring AI 的目标 三、Spring AI 的核心组件3.1 数据处理3.2 模型训练3.3 模型部署3.4 模型监控 四、Spring AI 的核心功能4.1 支持的模型提供商与类型4.2 便携 API 与同步、流式 API 选项4.3 将 AI 模型输出映射到 …...

华为昇腾910b服务器部署DeepSeek翻车现场

最近到祸一台HUAWEI Kunpeng 920 5250&#xff0c;先看看配置。之前是部署的讯飞大模型&#xff0c;发现资源利用率太低了。把5台减少到3台&#xff0c;就出了他 硬件配置信息 基本硬件信息 按照惯例先来看看配置。一共3块盘&#xff0c;500G的系统盘&#xff0c; 2块3T固态…...

c++ 文件及基本读写总结

在 C 中&#xff0c;文件操作是非常重要的一部分&#xff0c;主要用于将数据存储到文件中&#xff0c;或者从文件中读取数据。C 标准库提供了fstream头文件&#xff0c;其中包含了用于文件操作的类&#xff0c;主要有ifstream&#xff08;用于输入文件流&#xff0c;即从文件读…...

千峰React:组件与逻辑封装(上)

UI组件库及antd安装 UI组件库就是把页面的组件写好了&#xff0c;用的时候直接调用好了 进行一个安装的动作&#xff1a; 总之就是搭积木&#xff0c;可以调用里面写好的组件库拼接&#xff0c;也可以结合使用 antd布局和导航组件 组件总览 - Ant Design 这是通用部分 在用…...

Windows 10 远程桌面连接使用指南

目录 一、引言 二、准备工作 1、确认系统版本 2、服务器端设置 三、客户端连接 1、打开远程桌面连接程序 2、输入连接信息 3、输入登录凭证 4、开始使用远程桌面 四、移动端连接&#xff08;以 iOS 为例&#xff09; 1、下载安装应用 2、添加远程计算机 3、进行连接…...

​使用Kali中的Metasploit生成木马控制Windows系统

使用Kali中的Metasploit生成木马控制Windows系统 &#xff08;第九天 9.20&#xff09; 一、kali及Metasploit kali基于debin的数字取证系统&#xff0c;上面集成很多渗透测试工具&#xff0c;其前身是BT5 R3&#xff08;BrackTrack&#xff09;&#xff0c;在信息搜集方面发…...

Python与Web3.py库:构建去中心化应用的未来

Python与Web3.py库&#xff1a;构建去中心化应用的未来 在区块链的世界里&#xff0c;“去中心化”是最核心的理念之一&#xff0c;它赋予了用户更多的控制权和自由&#xff0c;消除了传统中心化系统中的单点故障和信任问题。而在这场技术革命中&#xff0c;Web3.0无疑是最受瞩…...