【轉】[unity3d]easytouch的使用

原文地址:http://blog.csdn.net/dingxiaowei2013/article/details/19967041



對於移動平臺上的RPG類的遊戲,我們常用虛擬搖桿來控制人物角色的行走和一些行爲,相信我們對它並不陌生,之前嘗試了EasyTouch2.5,發現並沒有最新版的3.1好用,2.5版本的對於自適應沒有做的很好,而最新版的已經解決了這一問題。當然unity也自帶了搖桿Joystick,用起來也簡單,但存在不少侷限,不會滿足普通mmo遊戲的需求,比如指定顯示區域或者是更改一些素材等等,而這些EasyTouch插件都已經幫你實現,不得不佩服插件的原作者,能做出這麼炫酷好用的插件,當然這估計是老外開發的,關於插件的下載,你可以在AssetStore上購買,當然也可以使用free版。

我這裏也提供一個3.1版本的插件下載地址:http://download.csdn.net/detail/s10141303/6962919

一、效果圖

感覺很酷有木有!接下來就看一下創建的過程吧!

二、操作步驟

1.官方文檔上的步驟

Quick Start (C#)

1-Import EasyTouch Package.
2-Create an empty gameObject, and name it EasyTouch.(You can choose another name)
Step 1 & 2 can be replace by the option menu


3-Add the EasyTouch.cs script on the EasyTouch gameObject that you just created. 
4-Select the EasyTouch gameobject, and verifies that Broadcast messages is set to FALSE in the inspector.


5-Create a new C# script MyFirstTouch
6-Add these methods

  1. // Subscribe to events  
  2. void OnEnable(){  
  3. EasyTouch.On_TouchStart += On_TouchStart;  
  4. }  
  5. // Unsubscribe  
  6. void OnDisable(){  
  7. EasyTouch.On_TouchStart -= On_TouchStart;  
  8. }  
  9. // Unsubscribe  
  10. void OnDestroy(){  
  11. EasyTouch.On_TouchStart -= On_TouchStart;  
  12. }  
  13. // Touch start event  
  14. public void On_TouchStart(Gesture gesture){  
  15. Debug.Log( "Touch in " + gesture.position);  
  16. }  

7-Create an empty gameObject, and name it Receiver.
8- Add MyFirstTouch script to the gameObject Receiver.
9- Run it in editor, and click on the screen

 

2.翻譯一下以上的步驟

  1.import“EasyTouch”資源包

        2.創建空物體,命名爲EasyTouch(當然你也可以改成其他名字)

        3.添加EasyTouch.cs腳本在剛剛創建的空物體(EasyTouch)上

4.選擇改物體但不要將BroadcastMessages勾選

5.創建一個新的C#腳本,命名MyFirstTouch

6.添加這些方法

7.再創建一個空物體,命名爲Receiver

8.將MyFirstTouch腳本添加到空物體Receiver上

9.運行並且點擊遙感,會發現控制檯打印了當前按下的座標

3.根據官方的這些提示,自己來做一個屬於自己的人物遙感控制

   1.導入EasyTouch3資源包
2.做好前期準備,包括人物模型、地形的創建
3.添加JoyStick實例:Hedgehog Team->Easy Touch->Extensions->Add a new Joystick。此時就會在左下角創建了虛擬遙感的實例。
        4.設置遙感的相關參數
5.創建腳本MoveController.cs用來接收遙感事件控制角色的移動
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class MoveController : MonoBehaviour {  
  5.   
  6.     void OnEnable()  
  7.     {  
  8.         EasyJoystick.On_JoystickMove += OnJoystickMove;  
  9.         EasyJoystick.On_JoystickMoveEnd += OnJoystickMoveEnd;  
  10.     }  
  11.   
  12.   
  13.     //移動搖桿結束  
  14.     void OnJoystickMoveEnd(MovingJoystick move)  
  15.     {  
  16.         //停止時,角色恢復idle  
  17.         if (move.joystickName == "MoveJoystick")  
  18.         {  
  19.             animation.CrossFade("idle");  
  20.         }  
  21.     }  
  22.   
  23.   
  24.     //移動搖桿中  
  25.     void OnJoystickMove(MovingJoystick move)  
  26.     {  
  27.         if (move.joystickName != "MoveJoystick")  
  28.         {  
  29.             return;  
  30.         }  
  31.           
  32.         //獲取搖桿中心偏移的座標  
  33.         float joyPositionX = move.joystickAxis.x;  
  34.         float joyPositionY = move.joystickAxis.y;  
  35.   
  36.   
  37.         if (joyPositionY != 0 || joyPositionX != 0)  
  38.         {  
  39.             //設置角色的朝向(朝向當前座標+搖桿偏移量)  
  40.            transform.LookAt(new Vector3(transform.position.x + joyPositionX, transform.position.y, transform.position.z + joyPositionY));  
  41.             //移動玩家的位置(按朝向位置移動)  
  42.             transform.Translate(Vector3.forward * Time.deltaTime * 5);  
  43.             //播放奔跑動畫  
  44.             animation.CrossFade("run");  
  45.         }  
  46.     }  
  47. }  
幾個函數的執行順序:
6.效果圖
 
7.創建點擊按鈕
點擊HedgehogTeam->EasyTouch->Extensions->Create a new Button,會在屏幕右下角創建一個button
 
 
如何讓有下角的按鈕點擊能做出我們想要的效果呢?
 
jump方法:
 
然後點擊一下按鈕,人物就會跳躍動作!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章