想使用Unity3D在手机上实现虚拟摇杆的功能,通过拖动左侧虚拟摇杆控制人物移动,在手机上运行效果如下:
初始时考虑使用官方Joystick,但是使用GUITexture时与游戏中其他功能冲突.
使用官方Joystick的JavaScript版本参考雨松MOMO博客,
链接:http://blog.csdn.net/xys289187120/article/details/6941061
C#版本代码链接:http://blog.csdn.net/hiramtan/article/details/8834187
最后选择使用插件EasyJoystick来实现这个功能.
插件Demo链接:
第一视角:http://www.blitz3dfr.com/unity3D/WebPlayer/EasyTouch/ThirdPerson/WebPlayer.html
第三视角:http://www.blitz3dfr.com/unity3D/WebPlayer/EasyTouch/ThirdPerson/WebPlayer.html
插件购买链接:http://u3d.as/content/matthew-worrall/mobile-joystick-controller/3kq
答应过插件原作者写一篇中文教程,教程如下:
英文官方教程链接:http://download.csdn.net/detail/hiramtan/5286699
英文官方编码目录链接:http://download.csdn.net/detail/hiramtan/5286745
1.按照下面的指示创建一个虚拟摇杆:
添加后Unity3D游戏预览窗口如下:
然后发现面板中多了下面两项,创建一个空物体,命名为JoystickManager控制虚拟摇杆事件,如下:
一定要记得第二项"Joystick"物体的名字与JoystickManager.cs代码中的名字一致,下面的步骤会有提示.
查看Joystick属性面板,如下:
通过下面的面板,可以将虚拟摇杆更改为自己的图片资源.
在JoystickManager中添加官方Demo中的示例代码:
注意事项:将此代码中的move.joystickName修改为上面红色标注的名字(hierarchy第二项的名字"Joystick")
官方示例控制的是3D模型,而我这里需要虚拟摇杆控制2D角色移动,共有上下左右四个方向.
修改代码如下:
将虚拟摇杆分为向左或向右拖拽,向左拖拽又分为左上,左,左下.这需要判断虚拟摇杆在x/y轴偏移量的大小,如上代码所示为虚拟摇杆向左拖拽逻辑,
根据偏移量大小播放向左/向上/向下动画,虚拟摇杆同时控制角色的position.向右拖拽时同理.这样虚拟摇杆控制角色移动就完成了.
如有任何建议请发邮件至hiramtan@qq.com
原文链接:http://blog.csdn.net/hiramtan/article/details/8834012
联系客服