您的位置:首页 > 移动开发 > Unity3D

Unity使用easytouch虚拟摇杆控制角色移动

2017-10-12 12:23 1001 查看
原文地址:http://m.blog.csdn.net/article/details?id=70304682
阅读原文获取源码转载注明出处,谢谢支持!!!

本文介绍使用EasyTouch插件的创建一个虚拟摇杆来控制任务的移动

这个Demo源码包括EasyTouch插件我已经上传了,大家可以下载下来学习玩玩!!!点击打开链接

Easytouch插件下载链接点击打开链接

添加EasyTouch插件

首先把EasyTouch插件拖到unity空项目中

在目录栏中中多了一个Tools选项按钮

按如下图选择,在视图中便出多个虚拟按钮

在Hierarchy面板中多了几个对象

在这里我们只要了解Joystick的属性即可
Joystick属性介绍

在这里注意下Interaction type这个属性,需要添加Event,否则无法与委托事件交互

委托事件的介绍打开Easy
Joystick脚本

在代码中我们会看到定义了一些委托事件
只要我们在自己的代码中添加事件函数
当虚拟摇杆相应事件被触发时,会调用我们写的事件函数
编写代码在角色上挂载一个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.csdn.net/article/details?id=70304682
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: