关键点1:在unity中touch事件同时也会触发GetMouseButton事件,有时候可能会给你带来方便,但是如果没有意识到这个问题的话,也很可能给你带来很大的麻烦。
关键点2:触摸操作也可以使用Input.GetAxis("Mouse X")(或"Mouse Y",下同,略去不写)来判断指尖移动的距离,虽然这点很方便,但是这样就带来了另外两个问题,见关键点3和4;
关键点3:Input.GetAxis("Mouse X")取得的值与Input.GetTouch(0).deltaPosition的取值有一些细微但是很重要的差别:
使用Input.GetAxis("Mouse X"),没有任何问题;
使用deltaPosition同样没有任何问题,因为这就是为触摸操作而设计的。
关键点4:实践中发现在直观感觉差不多的滑动过程(分别用鼠标拖动和手指拖动)中,Input.GetTouch(0).deltaPosition.x 的值总是比Input.GetAxis("Mouse X")取得的值要大很多,分析可能是手机屏幕dpi比较大的原因,因此在实践中为了获取直观感受差不多的旋转速度,要分别调试旋转加成系数。
总结一下:不要使用一条代码判断两种情况,最好分开,做一个单选(可以使用Enum),要么鼠标操作,要么触摸操作,分别使用最合适的判断和函数,并分别调试旋转加成系数