moba类游戏开发日志(三)ETC虚拟摇杆的使用及相机跟随的实现
对于任何一类ACT类的游戏来说,角色控制手感好坏的与否对游戏体验的影响是极其巨大的,最近在学习相关知识的时候了解到了EasyTouch、EasyJoystick等第三方虚拟摇杆插件,作为入门我觉得还是从这里开始比较好
和字面意思一样,EasyTouch是一款虚拟触屏滑动点击触发的“摇杆”,EastJoystick也就是ETC是我们一般印象中的虚拟摇杆,这里因为主要是对ETC有需求所以学习了一下它相关的api的调用
唔呣,其实装了之后发现assets里面自动的多了ETC的源码,所以学(用)起来其实也不难(就是看看他api的类型及功能),比起翻冗长的官方文档,倒是直接看源码比较轻松(笑)
如果没有什么特殊的需求的话,其实ETC用起来真的很方便,我们直接向scene中添加(拖进去)一个joystick就好了,之后我们便可以在scene及game视图中看到我们添加的虚拟摇杆

因为游戏习惯,我们一般将遥感放在屏幕的左下角,但是在测试过程中发现摇杆的位置会随着游戏界面的拉伸而移动,这不是我想要的效果
之后查阅了相关的资料了解到UGUI相关的类型的控件有一个属性叫Anchor,也就是锚点,为了实现我所需要的遥杆紧靠屏幕左下角的需求,我们需要将他的锚点设置在左下,如下图所示

为什么是设置左下,怎么说呢,我的理解就是他的字面意思,锚点就是固定一个控件的基准位置,在任意界面中控件的实际位置都是锚点位置+相对比例的偏移量,相对偏移量与界面本身的分辨率有关,而我们设置锚点为左下角后,相当于讲控件紧靠在了左下角,这样子不管界面怎么变都不会影响到它的位置了
在此之后,我们在ETC的inspector界面设置其camera的target为我们的游戏主角之后的话虚拟摇杆基本就是能用了,在game界面拖动摇杆便可以看到主角动了,然后Camera也是自动的跟随着主角,camera具体的视角以及高度之类的东西都可以自己设置,不过这边camera相对主角的位置是固定的,故而在移动中只能看到主角的后背,具体设置如下所示

ETC还有许多其他有趣的api可以调用,下面几个函数都是在摇杆发生字面意思的动作时会被触发,如果对于的需求可以自己在其中添加触发后操作

ETC插件的使用确实是没有什么难度,但终归是别人的东西,轮子还是自己造起来才有意思,今天早些时候同罗哥还有10和仓鼠学长聊了下虚拟摇杆的实现,仓鼠学长直接扔了个轮子,说是在网易摸鱼的时候无聊随手写的,我自己也试着用了下他的轮子,确实也挺好用的,源码也简单易懂,看完源码心中不免感叹一句,“不愧是仓鼠学长”
发表评论