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