1. 程式人生 > >Unity3D之Easytouch控制元件控制主角移動

Unity3D之Easytouch控制元件控制主角移動

開發步驟:

1.匯入Charactor Controller資源包;

2.匯入Easy Touch 3.1.0的資源包;

3.建立一個人物模型;

4.新建一個Plane作為地板。

5.新建一個joystick,新增步驟如下圖所示:


6.設定搖桿的相關屬性:


注:如圖中屬性一定要設定好,不然的話會出現搖桿沒有反應的情況!!!

7.為主角(即需要Easytouch搖桿控制移動的模型)新建一個指令碼MoveController用來接收搖桿的事件,控制主角的移動。

程式碼如下:

using UnityEngine;
using System.Collections;

public class MoveController : MonoBehaviour
{
    void OnEnable()
    {
        EasyJoystick.On_JoystickMove += OnJoystickMove;
        EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveEnd;
    }

    //移動搖桿結束  
    void OnJoystickMoveEnd(MovingJoystick move)
    {
        //停止時,角色恢復idle  
        if (move.joystickName == "MoveJoystick")
        {
            animation.CrossFade("idle");
        }
    }

    //移動搖桿中  
    void OnJoystickMove(MovingJoystick move)
    {
        if (move.joystickName != "MoveJoystick")
        {
            return;
        }

        //獲取搖桿中心偏移的座標  
        float joyPositionX = move.joystickAxis.x;
        float joyPositionY = move.joystickAxis.y;


        if (joyPositionY != 0 || joyPositionX != 0)
        {
            //設定角色的朝向(朝向當前座標+搖桿偏移量)  
            transform.LookAt(new Vector3(transform.position.x + joyPositionX, transform.position.y, transform.position.z + joyPositionY));
            //移動玩家的位置(按朝向位置移動)  
            transform.Translate(Vector3.forward * Time.deltaTime * 5);
            //播放奔跑動畫  
            animation.CrossFade("run");
        }
    }
}