Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Unity3D之触摸输入

Unity3D之触摸输入

作者头像
叶茂林
发布于 2023-07-30 07:08:50
发布于 2023-07-30 07:08:50
35300
代码可运行
举报
运行总次数:0
代码可运行

Unity3D提供了内置的API来处理移动设备上的触摸输入。你可以使用这些API来实现各种触摸交互,例如点击、滑动、缩放等。下面逐步介绍Unity3D中触摸输入的基本概念和使用方法:

获取触摸点数量

使用Input.touchCount属性可以获取当前屏幕上的触摸点数量。例如,通过以下代码可以获取触摸点的数量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int touchCount = Input.touchCount;

获取触摸信息

通过循环遍历所有触摸点,可以获取每个触摸点的详细信息。使用Input.GetTouch(index)方法可以获取指定索引处的触摸信息,其中索引范围从0到touchCount - 1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for (int i = 0; i < touchCount; i++)
{
    Touch touch = Input.GetTouch(i);
    // 处理触摸事件
    // ...
}

触摸状态

每个触摸点都有一个状态,表示触摸的不同阶段。可以通过touch.phase属性获取触摸点的状态。常见的状态包括:

Began:触摸开始时的状态。

Moved:触摸移动时的状态。

Stationary:触摸保持静止时的状态。

Ended:触摸结束时的状态。

Canceled:触摸被取消时的状态(例如由于设备其他操作中断触摸)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (touch.phase == TouchPhase.Began)
{
    // 触摸开始
    // ...
}
else if (touch.phase == TouchPhase.Moved)
{
    // 触摸移动
    // ...
}
else if (touch.phase == TouchPhase.Ended)
{
    // 触摸结束
    // ...
}

触摸位置

使用touch.position属性可以获取触摸点在屏幕上的位置,以屏幕坐标表示。屏幕左下角是原点,x 和 y 坐标范围都是[0, Screen.width/Screen.height]。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Vector2 touchPosition = touch.position;

多点触摸

Unity3D支持多点触摸,即屏幕上同时存在多个触摸点。通过循环遍历所有触摸点,可以处理多点触摸事件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for (int i = 0; i < touchCount; i++)
{
    Touch touch = Input.GetTouch(i);
    // 处理触摸事件
    // ...
}

手势操作

Unity3D还提供了一些辅助函数来处理常见的手势操作。例如,可以使用Touch.deltaPosition属性获取触摸位置的变化量,实现拖动手势。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Vector2 deltaPosition = touch.deltaPosition;

另外,可以通过计算两个触摸点之间的距离和角度的变化,实现缩放和旋转手势操作。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[LeetCode题解]开篇!求和问题总结:2Sum/3Sum/4Sum/KSum
之前在美国做访学,日子比较清闲。当时对数据结构和算法几乎一窍不通,便开始在Leetcode上刷算法题,也算是为找工作做准备,经过了一年多,也积累了很多Leetcode题解文章,并在CSDN上开了题解专栏。
Rude3Knife的公众号
2019/08/06
1.7K0
Leetcode数组题目
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。
润森
2019/11/14
6360
leetcode周赛(195)
给你一个整数数组 arr 和一个整数 k ,其中数组长度是偶数,值为 n 。现在需要把数组恰好分成 n / 2 对,以使每对数字的和都能够被 k 整除。
你的益达
2020/08/05
4900
Array相关LeetCode题目笔记
Array相关LeetCode题目笔记 11. 盛最多水的容器 题目描述: 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器。 示例 1: 输入:[1,8,6,2,5,4,8,3,7] 输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。
晓果冻
2022/09/08
1650
数据结构与算法之双指针
力扣地址:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
java小杰要加油
2021/08/13
1.4K0
数据结构与算法之双指针
算法笔记(一)
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
chuckQu
2022/08/19
6220
[Leetcode][Python/Java]两数之和 Two Sum/两数之和 II - 输入有序数组 Two Sum II
https://leetcode-cn.com/problems/two-sum/solution/
蛮三刀酱
2019/03/26
8710
LeetCode通关:通过排序一次秒杀五道题,舒服!
大家好,我是拿输出博客督促自己刷题的老三,前面学习了十大排序:万字长文|十大基本排序,一次搞定!,接下来我们看看力扣上有没有什么能拿排序解决的题目吧!
三分恶
2021/09/10
8870
LeetCode通关:通过排序一次秒杀五道题,舒服!
LeetCode | 数据结构与算法 | 3月 合集
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
yiyun
2023/05/18
1840
LeetCode | 数据结构与算法 | 3月 合集
力扣刷题(数组篇)
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 (leetcode-cn.com)  小王的主页:(14条消息) 学好c语言的小王同学的博客_CSDN博客-领域博主 小王的gitee:比特王信哲 (bitewang) - Gitee.com
王同学要努力
2022/12/20
2180
力扣刷题(数组篇)
【leetcode速通java版】02——有序数组、子数组、螺旋矩阵
上面冒泡排序让算法的时间复杂度变成了O(n+n^2),可以换成快速排序。如果您还不知道什么是快速排序,可以参考博客:快速排序
半旧518
2022/10/26
3200
【leetcode速通java版】02——有序数组、子数组、螺旋矩阵
搞定大厂算法面试之leetcode精讲5.二分查找
搞定大厂算法面试之leetcode精讲5.二分查找 视频教程(高效学习):点击学习 目录: 1.开篇介绍 2.时间空间复杂度 3.动态规划 4.贪心 5.二分查找 6.深度优先&广度优先 7.双指针 8.滑动窗口 9.位运算 10.递归&分治 11剪枝&回溯 12.堆 13.单调栈 14.排序算法 15.链表 16.set&map 17.栈 18.队列 19.数组 20.字符串 21.树 22.字典树 23.并查集 24.其他类型题 二分搜索 时间复杂度O(logn) 步骤: 从数组中间的元素开始,如果中
全栈潇晨
2021/11/24
3240
搞定大厂算法面试之leetcode精讲19.数组
搞定大厂算法面试之leetcode精讲19.数组 视频讲解(高效学习):点击学习 数组操作的时间复杂度 Access:O(1) Search:O(n) Insert: 平均O(n),最好的情况下O(1),也就是在数组尾部插入O(1),最坏的情况下O(n) Delete;平均O(n),最好的情况下O(1),也就是在数组尾部删除O(1),最坏的情况下O(n) 283. 移动零 (easy) 动画过大,点击查看 方法1:两次遍历 思路:遍历数组,定义索引j为数组的第一个位置,遇上非0元素,让
全栈潇晨
2021/12/04
4630
LeetCode 01:有人相爱,有人夜里开车看海,有人LeetCode第一题都做不出来
在LeetCode的第一题下面,有这样一句评论“有人相爱,有人夜里开车看海,有人leetcode第一题都做不出来。”看到这条评论,你是得意的笑呢,还是苦涩的笑?
程序新视界
2021/01/14
9600
LeetCode 01:有人相爱,有人夜里开车看海,有人LeetCode第一题都做不出来
轻松拿下两数、三数、四数和N数之和 | 必备算法
时间复杂度:O(N^2),其中N是数组中的元素数量。最坏情况下数组中所有数都需要被匹配 空间复杂度:O(1)
程序员荒生
2022/03/04
3650
LeetCode热题Top100 | 中等 | 上
1. 两数相加(2)# 给你两个非空的链表,表示两个非负的整数。 它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0开头。 示例 1: 输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807. 示例 2: 输入:l1 = [0], l2 = [0] 输出:[0] 示例 3: 输入:l1 = [9,9,9,9,9,9
素履coder
2022/05/19
1.6K0
LeetCode - 两数之和
开启新的一个篇章,LeetCode题解,个人的一些解题思路分享(可能有的题目就是这么菜,之后慢慢更,可以先把自己做完的100多题每天1题的方式先发出来,一遍更一遍写新题目)
晓痴
2019/07/24
2990
LeetCode - 两数之和
LeetCode链表知识点&题型总结
刚开始准备刷算法题目的时候,感觉真的是好难,十道题目有九道是不会的。心中曾一万只草泥马跑过,自己怎么这么辣鸡。
程序员徐公
2020/08/04
1.6K0
LeetCode链表知识点&题型总结
​LeetCode刷题实战34:在排序数组中查找元素的第一个和最后一个位置
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/01/20
1.2K0
用javascript分类刷leetcode19.数组(图文视频讲解)5
数组操作的时间复杂度Access:O(1)Search:O(n)Insert: 平均O(n),最好的情况下O(1),也就是在数组尾部插入O(1),最坏的情况下O(n)Delete;平均O(n),最好的情况下O(1),也就是在数组尾部删除O(1),最坏的情况下O(n)图片167. 两数之和 II - 输入有序数组 (easy)给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers
hellocoder2028
2023/01/09
5250
推荐阅读
相关推荐
[LeetCode题解]开篇!求和问题总结:2Sum/3Sum/4Sum/KSum
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档