原文地址:
http://m.blog.youkuaiyun.com/article/details?id=70304682
阅读原文获取源码转载注明出处,谢谢支持!!!
本文介绍使用EasyTouch插件的创建一个虚拟摇杆来控制任务的移动
这个Demo源码包括EasyTouch插件我已经上传了,大家可以下载下来学习玩玩!!!点击打开链接
Easytouch插件下载链接点击打开链接
首先把EasyTouch插件拖到unity空项目中
在目录栏中中多了一个Tools选项按钮
按如下图选择,在视图中便出多个虚拟按钮
在Hierarchy面板中多了几个对象
在这里我们只要了解Joystick的属性即可
Joystick属性介绍
在这里注意下Interaction type这个属性,需要添加Event,否则无法与委托事件交互
在代码中我们会看到定义了一些委托事件
只要我们在自己的代码中添加事件函数
当虚拟摇杆相应事件被触发时,会调用我们写的事件函数
编写代码 在角色上挂载一个C#脚本
[AppleScript]
纯文本查看
复制代码
using UnityEngine; using System.Collections; public class PlayByJoyStick : MonoBehaviour { public EasyJoystick joystick;//虚拟摇杆 private float runSpeed=2.0f; private Animation anima; void Start() { anima=this.GetComponent<Animation>(); } void OnEnable() { //注册事件 EasyJoystick.On_JoystickMoveStart += JoystickMoveStart; EasyJoystick.On_JoystickMove += JoystickHandlerMoving; EasyJoystick.On_JoystickMoveEnd += JoysticHanderMoveEnd; } void OnDisable() { //撤销事件 EasyJoystick.On_JoystickMoveStart -= JoystickMoveStart; EasyJoystick.On_JoystickMove -= JoystickHandlerMoving; EasyJoystick.On_JoystickMoveEnd -= JoysticHanderMoveEnd; } void JoystickMoveStart(MovingJoystick move) { Debug.Log("主角开始移动"); } void JoystickHandlerMoving(MovingJoystick move) { if (move.joystick.name != "Joystick") { return; } //获取虚拟摇杆偏移量 float Axis_x = move.joystickAxis.x; float Axis_y = move.joystickAxis.y; Vector3 position = this.transform.position; //设置角色的面向位置 this.transform.LookAt(new Vector3(position.x-Axis_x,position.y,position.z-Axis_y)); //切换角色动画 anima.CrossFade("crouchRun"); //主角移动 this.transform.Translate(Vector3.forward*Time.deltaTime*runSpeed); } void JoysticHanderMoveEnd(MovingJoystick move) { anima.CrossFade("idleSword"); } }
将虚拟摇杆拖进属性面板里
http://m.blog.youkuaiyun.com/article/details?id=70304682