在ios或者Android设备上运行Unity游戏时,桌面系统中的鼠标左键操作可以自动变成手机屏幕上的触屏操作,但是鼠标操作无法实现一些特有的触屏操作,比如多触摸屏操作。在 Unity 的 Input 类中unity桌面,除了包含桌面系统的各种输入功能、多点触控屏等。本节的示例适用于 ios 和 Android 平台。
1、打开光盘目录chapter11_Android_touch_start下的unity工程。在这个项目的场景中,只有一个角色模型。我们将使用触摸屏操作在 Android 设备上移动摄像头,并使用多点触摸屏来缩放摄像头视图。
2、打开脚本 Android Touch.cs 这是一个预先创建的脚本版本开发学习,但它几乎是空白的,并且没有任何内容。我们将在此脚本中添加触摸屏操作代码来控制相机的移动。
3、先添加一个m_screenpos属性,在start函数中启动多点触控屏。我们使用m_screenpos记录手指第一次触摸屏幕的位置,然后根据手指离开屏幕时的位置判断手指的滑动方向(CG资源网)
4、在Android Touch.cs中添加函数Mobileinput,使用input.touchCount判断有多少手指触摸屏幕。当只有一根手指触摸屏幕时,我们可以使用 Began 和 Moved 状态来判断手指是否刚刚触摸到屏幕。正在移动,当手指移动时,我们根据它移动的方向和距离来移动相机,代码如下
当手指离开屏幕时,我们根据初始触摸屏的位置和左侧的位置来判断手指的移动方向,但是当前的代码并没有做任何实际操作。此操作用于著名的游戏 Temple Run(也是用 unity 制作的)。确定主角转弯时的方向和跳跃。
5、当有多个手指触摸屏幕时,我们通过判断手指的滑动距离来缩放相机视图,继续前面的代码,添加代码如下 - CG资源网
6、在Update函数中执行Mobileinput函数,然后在Android设备上测试程序。向上、向下、向左和向右滑动手指将移动相机,用两根手指推拉将缩放相机视图。
7、桌面系统无法使用触屏操作代码。为了在桌面系统上预览效果,我们通常需要为桌面系统添加一些代码。
这个版本的桌面系统的操作就是简单的用鼠标左键移动摄像头,但是不能模拟多点触摸屏的操作,但是我们可以用其他的操作来代替,比如用鼠标滚轮来缩放摄像头看法。
8、 修改Update函数中的代码。UNITY_EDITOR、UNITY_ios、UNITY_ANDRIOD是unity预设的预处理标识。当程序在对应平台上运行时,对应的预处理标识为真。这里,当程序在ios或者Andriod平台上运行,并且没有在Editor中运行时unity桌面,调用函数Mobilinput中的触摸屏操作,否则调用桌面系统鼠标操作
更多软件教程123CGW