EasyTouch中虚拟摇杆的使用EasyJoystick
unity3d自带的虚拟摇杆显然没有EasyTouch好用
首先下载这个插件
http://pan.baidu.com/s/1hqJAbTa
下载完成后。导入到unity,可以看看里面的案例
找到这个可以自己看看效果
现在我们利用这个插件来做一个自己的虚拟摇杆
导入插件后。把EasyTouch导入到视图中,这里有C#和js两类。我选择C#
你会发现
右边的属性
一般默认就可以了
Enable EasyTouch:属性设置是否启用
接下来在项目中添加一个虚拟摇杆
Scene视图的左下角则多了一个摇杆
层次视图中也多了一个对象
来看看这个对象的一些主要属性
修改摇杆的名字。可以在代码中找到这个摇杆。
比如一个场景中有多个摇杆。可以通过摇杆判断是触发了那个
摇杆的位置设置。这个一看就知道。
摇杆的事件和贴图设置,
在场景中自己添加一个角色。给其添加脚本 MoveController.cs
using UnityEngine;
using System.Collections;
/// <summary>
/// 用来接收遥感事件控制角色的移动
/// </summary>
public class MoveController : MonoBehaviour
{
Animator animator;
public float speed = 5;//移动速度
void Awake()
{
animator = GetComponent<Animator>();
}
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
}
/// <summary>
/// 脚本启用时触发 ,注册事件
/// </summary>
public void OnEnable()
{
EasyJoystick.On_JoystickMove += new EasyJoystick.JoystickMoveHandler(EasyJoystick_On_JoystickMove);
EasyJoystick.On_JoystickMoveEnd += new EasyJoystick.JoystickMoveEndHandler(EasyJoystick_On_JoystickMoveEnd);
}
/// <summary>
/// 移动摇杆结束
/// </summary>
/// <param name="move"></param>
void EasyJoystick_On_JoystickMoveEnd(MovingJoystick move)
{
//停止时,角色恢复idle
//Movejoystick 当前移动的摇杆名称。
if (move.joystickName == "Movejoystick")
{
animator.SetBool("Run", false);
}
}
/// <summary>
/// 摇杆移动中
/// </summary>
/// <param name="move"></param>
void EasyJoystick_On_JoystickMove(MovingJoystick move)
{
if (move.joystickName != "Movejoystick")
{
return;
}
//获取摇杆中心偏移坐标
float joyPositionX = move.joystickAxis.x;
float joyPositionY = move.joystickAxis.y;
//开始移动
if (joyPositionX != 0 || joyPositionY != 0)
{
//设置角色的朝向 (朝向当前坐标+摇杆偏移量)
//Vector3 targetPos = new Vector3(transform.position.x + joyPositionX, transform.position.y, transform.position.z + joyPositionY)
//or
Vector3 targetPos = transform.position + new Vector3(joyPositionX, 0, joyPositionY) * Time.deltaTime * speed;
transform.LookAt(targetPos);
//玩家移动
//transform.Translate(Vector3.forward * targetPos);
//利用刚体移动
rigidbody.MovePosition(targetPos);
//播放奔跑动画
animator.SetBool("Run", true);
}
}
/*
Button Interaction&Events
* 中勾选use specific method
* Down method name:按下执行一次
* Press method name:按下一直执行
* Up method name:按下弹起执行一次
*/
/// <summary>
/// 按下执行该事件,只执行一次
/// Down method name
/// </summary>
void Attack()
{
//播放攻击动画
//animator.SetBool("Attack", true);
}
/// <summary>
/// 按下一直触发该事件
/// Press method name
/// </summary>
void PressAttack()
{
animator.SetBool("Attack", true);
}
/// <summary>
/// 触摸或者鼠标弹起 执行该事件 只执行一次
/// Up method name
/// </summary>
void StopAttack()
{
animator.SetBool("Attack", false);
}
}
然后再添加一个杀怪的按钮
此时右下角会显示
属性都很简单

可以参考:
http://blog.csdn.net/dingxiaowei2013/article/details/19967041
http://blog.csdn.net/qinyuanpei/article/details/26204177?utm_source=tuicool
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
