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);

    }

}

然后再添加一个杀怪的按钮

 

此时右下角会显示

 

属性都很简单

EasyTouch中虚拟摇杆的使用EasyJoystick

可以参考:

http://blog.csdn.net/dingxiaowei2013/article/details/19967041

http://blog.csdn.net/qinyuanpei/article/details/26204177?utm_source=tuicool

 

你可能感兴趣的:(touch)