码迷,mamicode.com
首页 > 其他好文 > 详细

EasyTouch中虚拟摇杆的使用EasyJoystick

时间:2015-07-11 16:45:57      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

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

 

EasyTouch中虚拟摇杆的使用EasyJoystick

标签:

原文地址:http://www.cnblogs.com/nsky/p/4638855.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!