Unity-点击和拖拽手势总结

2023-11-04

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;


//把这个脚本挂在想使用的gameobject上即可
public class Demo : MonoBehaviour, IPointerClickHandler, IPointerDownHandler, IPointerUpHandler, IDragHandler, IBeginDragHandler, IEndDragHandler
{

    //点击和拖拽总的触发顺序
    //01 OnPointerDown
    //02 OnBeginDrag
    //03 OnDrag
    //04 OnPointerUp
    //05 OnPointerClick
    //06 OnEndDrag

    //只处理拖拽的触发顺序,先触发OnBeginDrag, 再触发OnDrag,最后触发OnEndDrag
    //开始拖动
    public void OnBeginDrag(PointerEventData eventData)
    {
        //PointerEventData.delta的含义是自上次更新以来的指针坐标增量变化变化。
        this.GetComponent<RectTransform>().anchoredPosition += eventData.delta;
        //目前设的世界坐标和屏幕坐标一致,所以此时anchoredPosition左下角为(0,0)。右上角为屏幕的最大值。
        Debug.Log("OnBeginDrag anchoredPosition.x = " + this.GetComponent<RectTransform>().anchoredPosition.x);
    }

    //拖动中
    public void OnDrag(PointerEventData eventData)
    {
        this.GetComponent<RectTransform>().anchoredPosition += eventData.delta;
        //目前设的世界坐标和屏幕坐标一致,所以此时anchoredPosition左下角为(0,0)。右上角为屏幕的最大值。
        Debug.Log("OnDrag anchoredPosition.x = " + this.GetComponent<RectTransform>().anchoredPosition.x);

    }

    //拖动结束后
    public void OnEndDrag(PointerEventData eventData)
    {
        this.GetComponent<RectTransform>().anchoredPosition += eventData.delta;
        //目前设的世界坐标和屏幕坐标一致,所以此时anchoredPosition左下角为(0,0)。右上角为屏幕的最大值。
        Debug.Log("OnEndDrag anchoredPosition.x = " + this.GetComponent<RectTransform>().anchoredPosition.x);
    }


    //只处理点击的触发顺序,先触发OnPointerDown, 再触发OnPointerUp,最后触发OnPointerClick
    //手指按下
    public void OnPointerDown(PointerEventData eventData)
    {
        Debug.Log("OnPointerDown");
    }
    //手指抬起
    public void OnPointerUp(PointerEventData eventData)
    {
        Debug.Log("OnPointerUp");
    }
    //点击
    public void OnPointerClick(PointerEventData eventData)
    {
        Debug.Log("OnPointerClick");
    }
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity-点击和拖拽手势总结 的相关文章

  • 如何使用带有进度条的 HttpClient 下载文件?

    我创建了一个名为SiteDownload并添加了一些下载图像的链接 using System Collections Generic using System Linq using System Net using System Threa
  • C++,多语言/本地化支持

    向 C 程序添加多语言支持的最佳方法是什么 如果可能 应该从包含键值对 WelcomeMessage Hello s 之类的纯文本文件中读取语言 我想到了添加一个 localizedString key 函数来返回加载的语言文件的字符串 有
  • C++ 天花板函数的奇怪结果

    我一直在尝试天花板功能并得到一些奇怪的结果 如果我对十进制数乘以百执行 ceil 运算 我会得到一定的结果 但是 如果我直接对该乘法的结果执行 ceil 我会得到完全不同的输出 另一个问题是 这些不同的结果仅发生在某些数字上 任何帮助 将不
  • Web 应用程序框架:C++ 与 Python

    作为一名程序员 我熟悉 Python 和 C 我正在考虑编写自己的简单 Web 应用程序 并且想知道哪种语言更适合服务器端 Web 开发 我正在寻找一些东西 它必须是直观的 我认识到 Wt 存在并且它遵循 Qt 的模型 我讨厌 Qt 的一件
  • 委托和接口如何互换使用?

    我可以使用接口方法代替委托吗 如何 我发现搜索接口方法比使用委托更快 我希望有一个简单的代码片段 理论上 可以通过包含单个方法的接口 例如 Java 没有委托 来完成委托完成的所有工作 然而 它使代码变得更加冗长并且没有带来什么好处 话又说
  • 以概率从列表中选择随机元素

    我有一个包含四个项目 A B C D 的列表 每个项目都有被选择的概率 例如 A 有 74 的机会被选中 B 15 C 7 D 4 我想创建一个函数 根据其概率随机选择一个项目 有什么帮助吗 为您的项目定义一个类 如下所示 class It
  • stl 集的 C# 等效项是什么?

    我想使用 C 将一些值存储在平衡二叉搜索树中 我查看了泛型命名空间中的集合 但没有找到与 stl 集合等效的集合 我可以使用什么通用集合 我不想存储键 值对 只是值 你可以使用HashSet http msdn microsoft com
  • Visual Studio 2013 Intellisense 不会将枚举类型放在方法参数的位置

    例如 我有以下代码 namespace VS2013 EnumTypes class Program enum SomeEnum One Two static void SomeMethod SomeEnum someEnum some c
  • File.ReadAllLines 或流读取器

    我们可以使用以下方式读取文件StreamReader http msdn microsoft com en us library vstudio system io streamreader或通过使用File ReadAllLines ht
  • 更新 OSX 命令行工具 6.3 后缺少 C++ 标头 <__debug>

    从 App Store 更新到 Command Line Tools 6 3 后 程序包括
  • 如何使用 C# 调用 REST API?

    这是我到目前为止的代码 public class Class1 private const string URL https sub domain com objects json api key 123 private const str
  • C++ 为非虚方法指定初始化

    我有 a h 如下所示 class A public void doSomething 0 然后我有 b h 如下所示 include a h class b public A public void doSomething 我只是想通过尝
  • 从 TFS 下载工作项附件(文件已损坏)

    我正在尝试创建 C 代码 因此我可以自动从 Team Foundation Server 下载 BUGS 预定义查询的所有附件 该代码似乎工作得很好 但所有下载的文件都因意外原因而损坏 我无法查看它们 有人可以看一下代码并分享意见吗 非常感
  • 为什么 C++ 元组如此奇怪?

    我通常创建自定义structs将不同类型的值分组在一起时 这通常很好 而且我个人发现命名成员访问更容易阅读 但我想创建一个更通用的 API 在其他语言中广泛使用元组后 我想返回类型的值std tuple但发现它们在 C 中使用比在其他语言中
  • 将纬度/经度转换为 X/Y,以便在美国地图图像上进行阿尔伯斯投影

    我正在尝试使用 C 或 Javascript 将纬度 经度转换为 X Y 坐标 以将带有 CSS 的 div 左 上 定位到美国地图的背景图像上 美国的标准地图投影是阿尔伯斯投影 如下所示 但 StackOverflow 仅提供参考基本墨卡
  • 如何将此 Boost ASIO 示例应用到我的应用程序中

    我已经阅读了很多 ASIO 示例 但我仍然对如何在我的应用程序中使用它们感到困惑 基本上 我的服务器端需要接受超过100个连接 客户端 这部分是通过使用线程池 通常每个CPU核心2 4个线程 来完成的 为简单起见 我们假设只有一个连接 为了
  • 仅最后一个用户控件显示内容控件

    我有一个奇怪的问题 我创建了一个带有标签和画布的用户控件 画布引用资源 但画布仅显示在我的堆栈面板中的最后一个控件上 这是我的窗户
  • 在 Visual Studio C++ 资源编辑器中导入 png 文件

    我希望能够在 Visual Studio 资源编辑器中导入 png 文件 以便能够在不同的其他项目中使用嵌入的资源 有解决办法吗 我知道它适用于位图 但我对 png 感兴趣 因为即使在较低格式 16x16 或 32x32 上也可以使用 透明
  • 返回右值 - 这段代码有什么问题? [复制]

    这个问题在这里已经有答案了 我遇到了以下代码片段 std string test std string m Hello return std move m int main std string m test 我知道上面的代码是不正确且不安
  • InvalidOperationException:没有为方案“CookieSettings”注册身份验证处理程序

    我正在使用 ASP Net MVC core 2 1 开发一个应用程序 其中不断出现以下异常 InvalidOperationException 没有为方案 CookieSettings 注册身份验证处理程序 注册的方案有 Identity

随机推荐

  • QEMU安装及测试

    QEMU README QEMU is a generic and open source machine userspace emulator and virtualizer QEMU官网链接 https www qemu org Git
  • EasyPoi导出Excel

    这几天一直在忙工作中的事情 在工作中有一个问题 可能是因为刚开始接触这个EasyPoi 对其也没有太多的理解 在项目中就使用了 有一个需求 是要导出项目中所有的表格 今天就对这个需求进行分析和实现吧 需求 导出项目中所有的表格 导出文件为E
  • osgFBO(九)多pass---2,pass2,shader将背景从红色变为绿色

    二 pass2是比较完整的 同时有输入纹理和输出纹理 与pass1类似 这里只列出不同的地方 1 pass2摄像机输入tex1 osg ref ptr
  • 火焰检测 数据集

    开源项目1 https github com gengyanlei fire smoke detect yolov4 tree master yolov5 有数据集 Pytorch YOLOV4 火焰目标检测 石头儿啊的博客 CSDN博客
  • SpringBoot接口实现视频在线播放

    获取所有的mp4在线播放地址 并当前端调用该接口时返回mp4视频文件名及其播放地址 mp4视频存放在D盘的video文件夹下 ApiOperation 获取所有MP4播放地址 GetMapping get video address pub
  • 1. Qt小游戏 --- 推箱子

    1 说明 这个小游戏主要使用Qt中的绘制事件函数 paintEvent 在画布上面不停的绘制图形 并使用定时器做时间上的触发处理 这个小游戏只是做了简单的逻辑处理 具体复杂的功能读者可自行发挥 效果展示如下 Qt制作推箱子小游戏 2 相关代
  • 正负压产生电路(9V,12V)

    正负压输出电路 开关电源知识储备 xl6007 电荷泵 原理图和PCB 开关电源知识储备 在dc dc拓扑中有着buck 降压 boost 升压 buck boost 升降压 其原理简单总结是 利用储能元件 如电容电感 对电流的释放进行控制
  • vue3.0--使用element-plus的$message

    前题已经按如上步骤安装了按需加载的element plus 项目中使用this message 使用成功了 import ElMessage from element plus components ElMessage ElMessage
  • Error setting null for parameter #2 with JdbcType OTHER

    mybatis执行时报错内容如下 Error setting null for parameter 2 with JdbcType OTHER Try setting a different JdbcType for this parame
  • atcoder ABC 128

    目录 B guidebook c switches D equeue B guidebook B Guidebook atcoder jp 多关键字排序 按主要关键字 次要关键字排序 用结构体存储主次要关键字 用sort排序 sort可以对
  • squid 高匿配置 用户名密码配置

    1 安装squidyum install squid2 修改配置文件 在 http access deny all 上面加上如下权限配置 注意 一定要在这句上面 用户名密码配置 auth param basic program usr li
  • openGL之API学习(五)光照

    基本的光照模型主要包括 环境光 漫反射 镜面反射 环境光是在晴天室外到处看到的光的类型 环境光也就被建模为一个没有光源 没有方向并且对场景中的所有物体产生相同的点亮效果的一种光 环境光在很多情况下会被尽量的避免去考虑 因为它看上去有点太人工
  • PlacingObjectsontheGlobe_译

    PlacingObjectsontheGlobe 译 已经创建了一个关卡并且输入一些像CesiumWorldTerrain或者一个城市的摄影测量模型真实世界资产 接下来你可能想要从标准UnrealEngine工具箱添加一些对象 格网 植物
  • 对Spring loC DI的理解

    文章转自https www cnblogs com Mr Rocker p 7721824 html 仅供个人学习所用 好东西当然要多多学习啊 学习过Spring框架的人一定都会听过Spring的IoC 控制反转 DI 依赖注入 这两个概念
  • 如何编写一个可变参数函数?如何让所有单片机的所有串口实现printf函数?

    前言 1 由于真的复习不下去 就想着写一篇博客拉回自己的心思 于是想到了长期有疑惑 但是一直没有进行深入了解的C语言可变参数函数 2 本人查阅了一些网上的资料 以及自己的理解写出来了这一片博客 首先再次感谢肯哥的答疑 3 借鉴文章 C51单
  • [Android] 通过Menu实现图片怀旧、浮雕、模糊、光照和素描效果

    由于随手拍项目想做成类似于美图秀秀那种底部有一排Menu实现不同效果的功能 这里先简单介绍如何通过Menu实现打开相册中的图片 怀旧效果 浮雕效果 光照效果和素描效果 后面可能会讲述如何通过PopupWindow实现自定义的Menu效果 希
  • 关于startup启动找不到相应文件问题-ORA-01078: failure in processing system parameters

    Oracle启动的三种方式 startup nomount 非安装启动 读取init org 主要用于检查实例 startup mount 安装启动 startup open 打开 依次顺序为 open gt mount gt nomoun
  • Jaspersoft 报表:PDF中文不显示问题

    问题概述 PDF中文不显示问题主要是Jasperreports提供的font包不提供中文格式支持 所以我们需要自定义一个font包 用于支持 第一步 在Jaspersoft Studio中添加中文字体 1 下载微软雅黑字体文件 ttf 字体
  • 【论文精读】Vis-MVSNet: Visibility-aware Multi-view Stereo Network

    今天属于是重读经典了 这是一篇发表在BMVC2020上的文章 试图解决MVS中可见性的问题 该文章最近在拓展之后被发表在了IJCV上 本文的解读是基于扩展之后的IJCV版本 期刊的版本内容更加详细一点 文章链接 BMVC2020版本和IJC
  • Unity-点击和拖拽手势总结

    using System Collections using System Collections Generic using UnityEngine using UnityEngine EventSystems using UnityEn