兼容PC和手机触摸代码
2015-06-22 21:28
429 查看
测试环境:unity3d 4.6.1
using UnityEngine; using System.Collections; public class neccc : MonoBehaviour { public bool isMouseDown = false; private Vector3 lastMousePosition = Vector3.zero; Vector3 defaultPosition; public float speed = 0.5f; void Start() { lastMousePosition = Input.mousePosition; } // Update is called once per frame void Update() { /* * Camera.ScreenToWorldPoint 屏幕转世界位置 从屏幕空间到世界空间的变化位置。 屏幕空间以像素定义。屏幕的左下为(0,0);右上是(pixelWidth,pixelHeight),Z的位置是以世界单位衡量的到相机的距离。 */ #region 鼠标移动(手机屏幕移动)鼠标或者手指不一定要在角色上 角色跟着移动 注意:这里必须2D游戏。即。在创建游戏的时候选择2D if (Input.GetMouseButtonDown(0)) { isMouseDown = true; } if (Input.GetMouseButtonUp(0)) { isMouseDown = false; lastMousePosition = Vector3.zero; } if (isMouseDown) { if (lastMousePosition != Vector3.zero) { //camera.main.ScreenToWorldPoint(Input.mousePosition); Vector3 offetSet = Camera.main.ScreenToWorldPoint(Input.mousePosition) - lastMousePosition; transform.position = transform.position + offetSet; } lastMousePosition = transform.position; } #endregion } /// <summary> /// 鼠标按下,记住当前鼠标的位置(如果是手机。则是触摸的位置) /// </summary> void OnMouseDown() { defaultPosition = Input.mousePosition; } /// <summary> /// 鼠标拖动(手机屏幕上拖动)移动物体 /// </summary> void OnMouseDrag() { Vector3 v = Input.mousePosition - defaultPosition; transform.position = v; //平滑速度,根据需要用 //transform.position += v * Time.deltaTime * speed; defaultPosition = Input.mousePosition; } }
相关文章推荐
- C#获取根目录的方法集合
- 读Pyqt4教程,带你入门Pyqt4 _012
- 练习代码(五)接口与内部类(一)
- Java 求字符串中出现频率最高字符
- 冒泡排序
- C#实现任意大数的计算和简单逻辑命题的证明——前言
- github上建站和使用markdown写文章
- 学习笔记《C#入门经典(第6版)》C#语言:第6章
- Python学习 之 爬虫
- PHP学习记录_基本语法
- GO语言quicksort实现.快速排序法代码实现
- (翻译)如何对python dict 类型按键(keys)或值(values)排序
- 【Scala编程】函数式风格编写排序算法
- 读Pyqt4教程,带你入门Pyqt4 _011
- Java基础——包
- eclipse中新建maven项目
- Java编程思想学习笔记——初始化与清理(二)
- python bottle框架使用beaker支持session
- Listview发生在我身上的编程错误
- 【学习笔记】【C语言】二维数组