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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM