Unity触摸屏幕 拖拽物体 旋转物体 放大缩小物体 单击 双击 长按
Unity触摸屏幕 拖拽物体 旋转物体 放大缩小物体 单击 双击 长按
拖拽物体
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class PlayerMove : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){}public float speed = 0.1f;void Update(){if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved){//触摸位置与上次触摸位置之间的差异Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;transform.Translate(touchDeltaPosition.x * speed, touchDeltaPosition.y * speed, 0);}}
}
旋转物体
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class PlayerRotate : MonoBehaviour
{private float xSpeed=150f;void Start(){}// Update is called once per framevoid Update(){if (Input.GetMouseButtonDown(0)){if (Input.touchCount == 1){if (Input.GetTouch(0).phase == TouchPhase.Moved){transform.Rotate(Vector3.up*Input.GetAxis("Mouse X")*-xSpeed*Time.deltaTime,Space.World);}}}}
}
放大缩小物体
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class PlayerEnlarge : MonoBehaviour
{private Vector2 oldPos01;private Vector2 oldPos02;void Start(){}// Update is called once per framevoid Update(){if (Input.touchCount == 2){//第一个手指 或者第二个手指if (Input.GetTouch(0).phase == TouchPhase.Moved|| Input.GetTouch(1).phase == TouchPhase.Moved){Vector2 temPos1 = Input.GetTouch(0).position;Vector2 temPos2 = Input.GetTouch(1).position;if (IsEnlarge(oldPos01,oldPos02,temPos1,temPos2)){//放大float oldScale = transform.localScale.x;float newScale = oldScale * 1.025f;transform.localScale=new Vector3(newScale,newScale,newScale);}else{//缩小float oldScale = transform.localScale.x;float newScale = oldScale / 1.025f;transform.localScale = new Vector3(newScale, newScale, newScale);}oldPos01 = temPos1;oldPos02 = temPos2;}}}//判断手势bool IsEnlarge(Vector2 op1, Vector2 op2, Vector2 np1, Vector2 np2){//Mathf.Sqrt返回的平方根float lenth01 = Mathf.Sqrt((op1.x - op2.x) * (op1.x - op2.x) + (op1.y - op2.y) * (op1.y - op2.y));float lenth02 = Mathf.Sqrt((np2.x - np2.x) * (np2.x - np2.x) + (np2.y - np2.y) * (np2.y - np2.y));if (lenth01 < lenth02){return true;}else{return false;}}
}
单击 双击 长按
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Experimental.UIElements;public class PlayerButton : MonoBehaviour
{private bool newTouch;private float touchTime;void Update(){if (Input.GetMouseButtonDown(0)){Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit hit;if (Physics.Raycast(ray, out hit)){//Input.touchCount 几个手指//Input.GetTouch(0).tapCount 点击次数//TouchPhase.Began 手指触摸了屏幕。//TouchPhase.Moved 手指在屏幕上//TouchPhase.Stationary 手指触摸屏幕但未移动//TouchPhase.Ended 手指从屏幕上抬起//TouchPhase.Canceled 系统取消了触摸的跟踪//单击if (Input.touchCount==1 && Input.GetTouch(0).phase == TouchPhase.Began){if (Input.GetTouch(0).tapCount == 1){Debug.Log("单击");}}//双击if (Input.GetTouch(0).tapCount == 2 && Input.GetTouch(0).phase == TouchPhase.Began){Debug.Log("双击");}//长按if (Input.GetTouch(0).tapCount == 1){Touch touch = Input.GetTouch(0);if (touch.phase == TouchPhase.Began){newTouch = true;touchTime = Time.time;}else if (touch.phase == TouchPhase.Stationary){if (newTouch && Time.time - touchTime > 1f){newTouch = false;Debug.Log("长按");}}else{newTouch = false;}}}}}
}
Unity触摸屏幕 拖拽物体 旋转物体 放大缩小物体 单击 双击 长按相关推荐
- html图片轮播放大,jquery+CSS3实现轮播图、js实现轮播图片自适应等比显示、图片旋转、图片拖拽、鼠标滚动放大缩小...
// 实现图片旋转自适应外边框 //算法:1.当图片宽和高同时大于外边框时以宽为标准100%(相对外边框)进行自适应,原图不变垂直水平居中显示 2.当图片宽大于外边框宽,高小于外边框高时,以宽为标准1 ...
- 3dmax java_Java3D读取3DMax模型并实现鼠标拖拽、旋转、滚轮缩放等功能
/**-------------------------------------------------代码区--------------------------------------------- ...
- iOS学习笔记-068.手势识别02——捏合、拖拽、旋转手势
手势识别02捏合拖拽旋转手势 一捏合手势 1 UIPinchGestureRecognizerh 2 代码示例 3 图示 二拖拽手势 1 UIPanGestureRecognizerh 2 代码示例 ...
- Glide图片旋转与放大缩小
最近在项目中有用Glide去显示图片,其中有去实现图片旋转和当大缩小的功能,这里分享一下 图片的旋转: 首先通过一个类继承实现BitmapTransformation public class Rot ...
- css3旋转带放大缩小效果
下载地址 css3旋转带放大缩小效果,鼠标悬停的时候触发放大或缩小并旋转的动画. dd:
- CSS3实现旋转与放大缩小
CSS3实现旋转与放大缩小 开发工具与关键技术:Abobe Dreamweaver 动画旋转与放大缩小 作者:李国旭 撰写时间:2019年1月26日 一. 我们来简单认识一下动画,动画是使元素从一种样 ...
- Unity鼠标拖拽旋转拉远拉近场景
按下 左 "Alt" 键, 然后按下鼠标左键旋转场景,按下鼠标右键拖拽场景,滚动鼠标滚轮拉远拉近场景 (实际是摄像机的旋转移动和拉远拉近) 将下脚本直接拖拽到场景中的物体上,运行即 ...
- Unity 3D鼠标操作实现旋转、缩放观察物体
1.实现思路:操作摄像头围绕物体中心点(远点),做球面旋转移动来实现旋转观察物体,控制球的半径大小来实现物体的缩放效果. 2.C#摄像头源码脚本 //放在摄像头上,实现旋转.缩放观察物体 using ...
- Unity鼠标控制摄像机拖拽、旋转、缩放(模拟编辑器摄像机功能)
网上有不少类似内容了,不过有些不全面,甚至有有残缺,少了上下文,导致复制代码以后报错,笔者很讨厌这种太监代码!! 话说真传一句话,假传万卷书,代码全文如下:复制到自己脚本中,挂到摄像机上即可运行 us ...
最新文章
- 软件接口数据一致性机制
- Linux文件夹共享(NFS)
- boost::mp11::mp_map_erase相关用法的测试程序
- Spring版本特性:Spring各个版本引入了哪些新特性?
- h5适配华为手机_知道为什么建站大多选H5自适应网站吗?现在我就告诉你
- P2685 [TJOI2012]桥(最短路+线段树)
- linux捕捉信号sigint失败,为shell布置陷阱:trap捕捉信号方法论
- MySQL 性能优化--QueryCache的原理
- 西瓜书《支持向量机SVM》 原始形式推导+拉格朗日乘数法的SVM形式+SVM对偶形式推导+SMO算法推导
- python怎么使用预训练的模型_Tensorflow加载Vgg预训练模型操作
- android:模拟水波效果的自己定义View
- Mac 苹果OS X小技巧:如何更改文件的默认打开方式
- Lamp兄弟连Linux视频教程
- access 江苏计算机二级_关于江苏省计算机二级MS OFFICE考试的建议
- android项目查看sdk版本号,怎查看Android项目的Android版本
- Android测试工具-Emmagee使用
- c语言 电阻器的分类,电阻器的分类
- 增加网站的档次!网页设计师可在网站中加入暗色调
- Android开发 之 OpenGL ES系列(5--3D立体图形)
- 计算机组成原理秒表设计实验,计算机组成原理实验2.4计数器赖晓铮剖析.ppt
热门文章
- ATEC线上赛网络欺诈举报定性Top1方案总结
- 干货||常见软件测试管理工具
- c++编译错误--	C2678	二进制“=”: 没有找到接受“_Ty”类型的左操作数的运算符(或没有可接受的转换)
- P1473 埃及分数
- NR PDSCH(七) DL SPS
- 官方发布历年考研平均分!你今年考多少分才能上岸
- 计算机组成原理——除法运算
- QT模块化编程 pri子工程创建以及使用 pro工程
- 计算机专业可以考虑的证书 相关指导
- react梳理之(非)受控组件