logo资料库

运用Unity内置Input.GetTouch在移动端实现多点触控事件.docx

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
运用 Unity 内置 Input.GetTouch 在移动端实现多点触控事件。 注:仅适用于移动端, 不适用于 PC,编辑器 多点触控事件项目,可以下载 APP (Unity Remote5 http://zhushou.360.cn/detail/index/soft_id/2180710 )到手机等移动设备进行测试 在 Unity 设置 Edit->Project Settings->Editor 下的 Unity Remote Device 下选择 Any Android Device 完成后所有 Unity 工程全部退出,重新加载项目, APP(Unity Remote5)安装完成之后,手机打开此 APP,用手机线连接电脑,手机打开调试 运行 Unity 项目,手机屏幕显示结果与编辑器相一致(手机端为触控事件)
using UnityEngine; using System.Collections; using UnityEngine.UI; public class test : MonoBehaviour { public Text text; public float speed = 0.1F; void Update() { if (Input.touchCount > 0) { text.text = Input.touchCount.ToString(); //Text 显示几点触控 } } } { } on; 确的 上面 Input.touchCount 用于检测触控点数量 Input.GetTouch(0).phase == TouchPhase.Moved 手指滑动中最后一帧 滑动的状态是运动的(判断手指在屏幕上是否滑动) Input.GetTouch(0).deltaPosition 放回手指滑动增量 例如:Update 函数内(控制摄像机移动的代码): if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPha se.Moved) //判断手机是否被触控,手指是否滑动 // Get movement of the finger since last frame 下一帧的位 移增量 仅有xy 值 Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPositi // Move object across XY plane 将此脚本挂在摄像机上方向是正 transform.Translate(-touchDeltaPosition.x * speed, -touchD eltaPosition.y * speed, 0);
多点触控,实现物体缩放(下面脚本挂在需要缩放的物体上) using UnityEngine; using System.Collections; public class suofang1 : MonoBehaviour { float distance= 0;//触控缩放的距离 private float lastDist = 0;//用于计算触控缩放 private float curDist = 0;//用于计算触控缩放 int t;//判断缩放触控 // Update is called once per frame void Update () { //两点以上触控,且触控点发生移动 chPhase.Moved { if( (Input.touchCount>1) && (Input.GetTouch(0).phase==Tou || Input.GetTouch(1).phase==TouchPhase.Moved ) ) var touch1 = Input.GetTouch(0); //第一根手指 var touch2 = Input.GetTouch(1); //第二根手指 curDist = Vector2.Distance(touch1.position, touch2.position) ;//两指间距 //当手指移动时,重置起始距离为当前距离 if( t==0 ) { lastDist = curDist; t=1; } distance=curDist-lastDist; this.gameObject.transform.localScale += Vector3.one * dis tance*Time.deltaTime ; lastDist = curDist; } //没有触控事件 if( Input.touchCount==0 ) t=0; }
} --------------------------------------------------------------------- 多点触控,实现在手机屏幕上绘制图片 代码如下: using UnityEngine; using System.Collections; public class Draw : MonoBehaviour { public Texture BG_img; //加载背景图片 public Texture ChuKong_img;//加载触控时添加的图片(眼睛) int width;//接收手机屏幕宽度 int height; //接收手机屏幕高度 void Start () { width = Screen.width; height = Screen.height; } // Use this for initialization 在OnGUI 中绘制图形(下列代码在Update 中报错) void OnGUI() { //绘制图片函数GUI.DrawTexture GUI.DrawTexture (new Rect(0,0,width,height),BG_img,ScaleM
ode.StretchToFill); int touchCount = Input.touchCount;//获取触控手指的数量 //遍历每根手指 触发相应事件 for(int i = 0 ; i
分享到:
收藏