兼容PC和手机触摸代码
2015-06-22 21:28 糯米粥 阅读(1075) 评论(0) 编辑 收藏 举报测试环境:unity3d 4.6.1
1 using UnityEngine; 2 using System.Collections; 3 4 public class neccc : MonoBehaviour 5 { 6 7 8 public bool isMouseDown = false; 9 private Vector3 lastMousePosition = Vector3.zero; 10 11 Vector3 defaultPosition; 12 public float speed = 0.5f; 13 14 15 void Start() 16 { 17 lastMousePosition = Input.mousePosition; 18 19 } 20 // Update is called once per frame 21 void Update() 22 { 23 24 /* 25 * Camera.ScreenToWorldPoint 屏幕转世界位置 26 从屏幕空间到世界空间的变化位置。 27 28 屏幕空间以像素定义。屏幕的左下为(0,0);右上是(pixelWidth,pixelHeight),Z的位置是以世界单位衡量的到相机的距离。 29 */ 30 #region 鼠标移动(手机屏幕移动)鼠标或者手指不一定要在角色上 角色跟着移动 注意:这里必须2D游戏。即。在创建游戏的时候选择2D 31 if (Input.GetMouseButtonDown(0)) 32 { 33 isMouseDown = true; 34 35 } 36 if (Input.GetMouseButtonUp(0)) 37 { 38 isMouseDown = false; 39 lastMousePosition = Vector3.zero; 40 } 41 if (isMouseDown) 42 { 43 if (lastMousePosition != Vector3.zero) 44 { 45 //camera.main.ScreenToWorldPoint(Input.mousePosition); 46 Vector3 offetSet = Camera.main.ScreenToWorldPoint(Input.mousePosition) - lastMousePosition; 47 48 transform.position = transform.position + offetSet; 49 } 50 lastMousePosition = transform.position; 51 } 52 #endregion 53 54 } 55 56 57 /// <summary> 58 /// 鼠标按下,记住当前鼠标的位置(如果是手机。则是触摸的位置) 59 /// </summary> 60 void OnMouseDown() 61 { 62 defaultPosition = Input.mousePosition; 63 } 64 65 /// <summary> 66 /// 鼠标拖动(手机屏幕上拖动)移动物体 67 /// </summary> 68 void OnMouseDrag() 69 { 70 Vector3 v = Input.mousePosition - defaultPosition; 71 transform.position = v; 72 //平滑速度,根据需要用 73 //transform.position += v * Time.deltaTime * speed; 74 defaultPosition = Input.mousePosition; 75 } 76 77 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?