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触摸屏幕 拖拽物体 旋转物体 放大缩小物体 单击 双击 长按相关推荐

  1. html图片轮播放大,jquery+CSS3实现轮播图、js实现轮播图片自适应等比显示、图片旋转、图片拖拽、鼠标滚动放大缩小...

    // 实现图片旋转自适应外边框 //算法:1.当图片宽和高同时大于外边框时以宽为标准100%(相对外边框)进行自适应,原图不变垂直水平居中显示 2.当图片宽大于外边框宽,高小于外边框高时,以宽为标准1 ...

  2. 3dmax java_Java3D读取3DMax模型并实现鼠标拖拽、旋转、滚轮缩放等功能

    /**-------------------------------------------------代码区--------------------------------------------- ...

  3. iOS学习笔记-068.手势识别02——捏合、拖拽、旋转手势

    手势识别02捏合拖拽旋转手势 一捏合手势 1 UIPinchGestureRecognizerh 2 代码示例 3 图示 二拖拽手势 1 UIPanGestureRecognizerh 2 代码示例 ...

  4. Glide图片旋转与放大缩小

    最近在项目中有用Glide去显示图片,其中有去实现图片旋转和当大缩小的功能,这里分享一下 图片的旋转: 首先通过一个类继承实现BitmapTransformation public class Rot ...

  5. css3旋转带放大缩小效果

    下载地址 css3旋转带放大缩小效果,鼠标悬停的时候触发放大或缩小并旋转的动画. dd:

  6. CSS3实现旋转与放大缩小

    CSS3实现旋转与放大缩小 开发工具与关键技术:Abobe Dreamweaver 动画旋转与放大缩小 作者:李国旭 撰写时间:2019年1月26日 一. 我们来简单认识一下动画,动画是使元素从一种样 ...

  7. Unity鼠标拖拽旋转拉远拉近场景

    按下 左 "Alt" 键, 然后按下鼠标左键旋转场景,按下鼠标右键拖拽场景,滚动鼠标滚轮拉远拉近场景 (实际是摄像机的旋转移动和拉远拉近) 将下脚本直接拖拽到场景中的物体上,运行即 ...

  8. Unity 3D鼠标操作实现旋转、缩放观察物体

    1.实现思路:操作摄像头围绕物体中心点(远点),做球面旋转移动来实现旋转观察物体,控制球的半径大小来实现物体的缩放效果. 2.C#摄像头源码脚本 //放在摄像头上,实现旋转.缩放观察物体 using ...

  9. Unity鼠标控制摄像机拖拽、旋转、缩放(模拟编辑器摄像机功能)

    网上有不少类似内容了,不过有些不全面,甚至有有残缺,少了上下文,导致复制代码以后报错,笔者很讨厌这种太监代码!! 话说真传一句话,假传万卷书,代码全文如下:复制到自己脚本中,挂到摄像机上即可运行 us ...

最新文章

  1. 软件接口数据一致性机制
  2. Linux文件夹共享(NFS)
  3. boost::mp11::mp_map_erase相关用法的测试程序
  4. Spring版本特性:Spring各个版本引入了哪些新特性?
  5. h5适配华为手机_知道为什么建站大多选H5自适应网站吗?现在我就告诉你
  6. P2685 [TJOI2012]桥(最短路+线段树)
  7. linux捕捉信号sigint失败,为shell布置陷阱:trap捕捉信号方法论
  8. MySQL 性能优化--QueryCache的原理
  9. 西瓜书《支持向量机SVM》 原始形式推导+拉格朗日乘数法的SVM形式+SVM对偶形式推导+SMO算法推导
  10. python怎么使用预训练的模型_Tensorflow加载Vgg预训练模型操作
  11. android:模拟水波效果的自己定义View
  12. Mac 苹果OS X小技巧:如何更改文件的默认打开方式
  13. Lamp兄弟连Linux视频教程
  14. access 江苏计算机二级_关于江苏省计算机二级MS OFFICE考试的建议
  15. android项目查看sdk版本号,怎查看Android项目的Android版本
  16. Android测试工具-Emmagee使用
  17. c语言 电阻器的分类,电阻器的分类
  18. 增加网站的档次!网页设计师可在网站中加入暗色调
  19. Android开发 之 OpenGL ES系列(5--3D立体图形)
  20. 计算机组成原理秒表设计实验,计算机组成原理实验2.4计数器赖晓铮剖析.ppt

热门文章

  1. ATEC线上赛网络欺诈举报定性Top1方案总结
  2. 干货||常见软件测试管理工具
  3. c++编译错误-- C2678 二进制“=”: 没有找到接受“_Ty”类型的左操作数的运算符(或没有可接受的转换)
  4. P1473 埃及分数
  5. NR PDSCH(七) DL SPS
  6. 官方发布历年考研平均分!你今年考多少分才能上岸
  7. 计算机组成原理——除法运算
  8. QT模块化编程 pri子工程创建以及使用 pro工程
  9. 计算机专业可以考虑的证书 相关指导
  10. react梳理之(非)受控组件