我是靠谱客的博主 自由期待,这篇文章主要介绍unity中在触控屏中Input.GetAxis("Mouse X")判断出现失误,现在分享给大家,希望可以做个参考。

在pc端中可以通过Input.GetAxis(“Mouse X”)或Input.GetAxis(“Mouse Y”)判断鼠标移动的方向,

但在触控屏中,以Input.GetAxis(“Mouse X”)或Input.GetAxis(“Mouse Y”)判断单点触控的手指滑动的方向容易发生错误,故不建议在触控屏中使用此方法。

参照:https://blog.csdn.net/poda_/article/details/51334051

以下是在触控屏的单点触控或pc鼠标滑动控制物体旋转:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using UnityEngine; public class ContralObject : MonoBehaviour { public GameObject MainBuilding; //主建筑模型 private bool isPressLeft = false;//是否刚刚开始旋转 private Vector2 newPosition; private Vector2 oldPosition; void Update() { //控制物体旋转 if (Input.GetMouseButton(0))//鼠标左键 { if (isPressLeft == false) { oldPosition = Input.mousePosition; isPressLeft = true; return; } else { newPosition = Input.mousePosition; } if (Mathf.Abs(newPosition.x - oldPosition.x) > Mathf.Abs(newPosition.y - oldPosition.y) && Mathf.Abs(newPosition.x - oldPosition.x) > 0.5f) { MainBuilding.transform.Rotate(Vector3.down * (newPosition.x - oldPosition.x) * Time.deltaTime * 5, Space.World);//绕Y轴进行旋转 } /* //控制x轴,即上下角度旋转 if (Mathf.Abs(newPosition.x - oldPosition.x) < Mathf.Abs(newPosition.y - oldPosition.y) && Mathf.Abs(newPosition.y - oldPosition.y) > 0.5f) { Vector3 add = MainBuilding.gameObject.transform.localEulerAngles + Vector3.right * (newPosition.y - oldPosition.y) * 0.1f; float xx = add.x; if (xx >= 66 && xx < 180) { xx = 66; } if (xx < 0) { xx = 0; } MainBuilding.gameObject.transform.localEulerAngles = new Vector3(xx, MainBuilding.gameObject.transform.localEulerAngles.y, MainBuilding.gameObject.transform.localEulerAngles.z); }*/ oldPosition = newPosition; } if (Input.GetMouseButtonUp(0)) { isPressLeft = false; } } }

最后

以上就是自由期待最近收集整理的关于unity中在触控屏中Input.GetAxis("Mouse X")判断出现失误的全部内容,更多相关unity中在触控屏中Input.GetAxis("Mouse内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部