unity设备dpi的作用(手指滑动物理距离计算)

当需要在移动设备中检测手指移动距离,并根据手指移动的物理距离来控制物体的旋转或缩放时,需要获取设备的dpi(每英寸点的个数),通常就是ppi(每英寸像素的个数)。

原因:

因为相同物理尺寸的设备可能显示的像素分辨率并不同,而unity中Touch.position获取的是像素坐标,不同dpi的设备,dpi低的设备手指可能移动10厘米时像素变化100,但是高dpi的设备可能只需要移动1mm像素就变化了100,如果直接用像素的变化值作为参数控制物体的旋转量或者缩放量的化,就会造成不同dpi设备上的灵敏度不同。

解决方案:

1.获取设备灵敏度Screen.dpi

2.用像素变化量除以Sreen.dpi的值作为控制物体旋转或缩放的变化量,可以乘以一个系数用来控制灵敏度

猜你喜欢

转载自www.cnblogs.com/chibaojiushui/p/12585695.html