写在前面
继续填坑了。这次是讲手机端。
- 电脑端 [ 按我跳转 ]
- 键盘按键控制 [ 上文内容 ]
- 鼠标点击控制 [ 上文内容 ]
- 手机端
- 触屏控制 [ 本文内容 ]
- 手势控制 [ 本文内容 ]
- 重力控制 [ 下文内容 ]
- 陀螺仪控制 [ 下文内容 ]
本文的限制:接上文,本文主要讲在手机检查操作的方法,至于之后执行的相关命令,读者完全可大开脑洞。如果你有什么好的想法,欢迎告诉我!
正文
1 触屏控制
试想象神庙逃亡这类游戏,你能想到些什么操作方式?通常玩家会使用手指或手势来操控游戏。所谓的手势指的是,类似下划,上划一类的操作方式。
检测触屏,需要用到,由MonoBehaviour提供的OnMouseDown()方法。这个方法在电脑和手机端都可以调用。
MonoBehaviour.OnMouseDown()docs.unity3d.com
例子
void OnMouseDown()
{
Debug.Log("The Button is pressed"+this.name);
}
这个方法可以检测用户对GUI Element (比如GUI Texture)和碰撞体的触屏点击。因此通常这个方法不会放进主程序的Update内,这是因为只要我们给点击相关物件的代码加入这个方法,那么当它被触摸时,就会调用OnMouseDown方法。
Unity Remote可以为电脑和手机提供接口,让游戏画面可以通过Unity的play按钮,在手机上同步呈现。读者可自行到goolg play商店下载安装。
然而,假设你为你的一些GUI button加入了这个方法,并做一些输出之后,你会发现一个问题。如果你试着同时按下两个按钮,会发现什么信息也没有出现,或者只出现其中一个按钮被按下的信息。
绝大部分的游戏都需要多点触控,所以上面的方法显然还行不通。
先来了解多点触控的概念。看图