easy touch5.0.17的安装与使用

easy touch插件的使用本来应该在前几天的坦克大战里进行实践的,但是由于有个新的炸弹人游戏要做,所以在前天完成炸弹人游戏后才开始实践。最近对一句话“功不唐捐,玉汝于成”一见钟情,以此自勉。

谈到easy touch,我只能说在安装使用的过程中让我头皮发麻。我的unity版本刚开始是2018.1.1f版本。并且我的项目也是在这个版本完成的,但是导入easy touch5.0.17会出现一个问题:

 GetBool is not allowed to be called from a ScriptableObject constructor ...
查看了诸多国内外的网站的回答,没有发现什么解决办法,原因似乎是unity版本的更替,对其中的某些类进行了更改。如下图:



提到的解决办法是对Inspector进行升级,但我的已经是2018版本了,我认为应该当时更新的内容应该已经添加到当前版本里面了。在easy touch的官方页面去查看了下:


该版本已经更新到5.0.18,但是据该用户评论,问题依然没有解决。

在没有其他更多途径的情况下,我选择了重下unity 5.4版本,令人欣喜的是easy touch导入没有出错,令人头痛的是2018版本创建的项目不能向下兼容,所以做了无用功。只能重下2018版本,在下载2018版本时发现了2018.1.6f版本,不支持向下兼容应该能支持向上兼容,个人抱着这种想法下了最新版本。也正是这一想法得到了上天眷顾吧,抱着试一试的心态,再导入easy touch5到2018.1.6f版本时只有一个错误,而这个错误是很容易修改的。如下图:


在我第一次导入easy touch到unity 3d里面时出现了一个error提示easy touch里面一个鼠标点击的方法过时,按照提示改完后(如上图)就不再有错,后面几次导入都没再出现这个问题(难以理解)。至此easy touch终于能正常工作了。

在使用easy touch的过程中当然也存在不少问题,比如按下space键会触发所有的虚拟按键button,有时会出现锁跳后继续移动等相关问题,这些问题是在观看siki学院一位老师讲解easy touch5的使用过程中了解到的(老师讲得很详细,而且课程免费)。

视频地址:http://www.sikiedu.com/my/course/91

老师没有提到一点是easy touch的虚拟按键button必须在update中才能被检测到(joystick和D-Pad实测可以在FixedUpdate中使用),这一点在后面使用按键时造成了巨大麻烦,后来翻看了许多博客,看见了某个博客稍有提及才去实验成功。至此,easy touch5终于被我正确地导入与使用了。

joystick和D-pad的使用也很简单,我需要的只是x值和y值,具体步骤如下:

 private ETCDPad caokong;//实例化D-pad

caokong = ETCInput.GetControlDPad("d_pad"); //start方法中获取名字为d_pad的方向操纵器,(d_pad)为unity Hierarchy 中对D-pad的命名

 horizontal=caokong.axisX.axisValue;//获取x轴方向值和y轴方向值
  vertical= caokong.axisY.axisValue;

判断虚拟按键button是否按下:ETCInput.GetButtonDown("button1")//返回的是bool类型的值,button1为定义的button的名字(特别注意:easy touch5 中的button只能在update中被检测到)。

以上,祝好!