ケース簡単タッチ5プラグを研究し、本当に重宝する時間を取って、次のように対応する使用です。
1.簡単にタッチコントロール:仮想ジョイスティックの実装するコンポーネント
あなたが作成した後でプロジェクトの「階層」ウィンドウの下に、ジョイスティックのゲームオブジェクト=> EasyTouchControls =>ジョイスティックをクリックして、ロッカーオブジェクトは階層パネルに表示されますを作成するには、ゲームのビューはロッカーがあるでしょう、このプラグインが書かれUGUIに基づいている必要がありますそれが道に表示され、キャンバスのように下のオブジェクトのコントロールを作成する(そのメソッドUGUIカスタムイベントとイベントを追加基本的に同様である)、また、キャンバスとEventSystemを表示され、ジョイスティックは、サブオブジェクトのキャンバスになります。「InputManager」ゲームオブジェクトが存在します、ロッカーが終わっ追加、これはあなたがこのオブジェクトのゲームを削除した場合、制御EASYTOUCHユーザ入力を達成するために使用されなければならない、このゲームは動的に生成されたオブジェクトのゲームは、いくつかの設定です以下、実行されています:
あなたが起動したときに物理エンジンがある場合にアクティブに、FixedUpdateを使用する必要がある場合名前は、表示されています
ロッカーの位置を示し、オフセット、サイズ
横軸であるロッカシャフト構成、制御対象のそのような回転は、スピードを「に基づいて、アクション「回転ローカル」を用いて、(タグモードを使用して、タグに自動リンクをも使用することができる)、そのオブジェクトを制御するために、200に設定されていますY「軸
縦軸であるロッカシャフト構成、前後に「Z」軸を移動させるように構成される拡張
三人称ゲームを実装する場合、多くの場合、あなたは、「MainCamera」を使用して、「追跡を有効にする」良いゲームオブジェクトのようにリンクをたどることができ、カメラを実行する必要があり、カメラでは、あなたが高さ、距離を追跡するために、カメラを制御することができ、「滑らかなフォロー」の使用を以下の
これは、仮想ジョイスティックの写真を設定するために使用されます
如果不用自动配置,想使用自己的代码来控制物体移动,代码中是使用:
ETCInput.GetAxis("Vertical") ETCInput.GetAxis("Horizontal")
唯一不好的是这个插件导入后,给了一大堆示例和文档,如果是项目开发会增加不少的size,做了相应的精减,只有200多K了https://files-cdn.cnblogs.com/files/bearhb/EasyTouchControls-min.rar
2. Easy Touch:实现手势控制的组件
(1)Hierarchy窗口中必须右键,生成"EasyTouch" ->"EasyTouch"物体;
(2)QuickGesture:这个实在是太猛了, 如果想给某个游戏物体添加手势的一些事件,直接添加下面某个组件就可以了:
例如一个cube如果想被拖动,直接添加“Quick Drag"组件,这个Cube就可以实现拖动了,而且拖动的事件和UGUI完全一致;
(3)如果需要在程序中进行手势判断,是需要下面的脚本:
using HedgehogTeam.EasyTouch; using System.Collections; using System.Collections.Generic; using UnityEngine; public class TouchManager : MonoBehaviour { private Renderer ren; private void Start() { ren = GetComponent<Renderer>(); } void Update() { // 获取当前玩家输入的手势 Gesture currentGesture = EasyTouch.current; //如果有手势 if (currentGesture != null) { //区分手势进行检测 switch (currentGesture.type) { //开始触摸 case EasyTouch.EvtType.On_TouchStart: Debug.Log("OnTouchStart"); Debug.Log("startPosition" + currentGesture.startPosition); OnTouchStart(currentGesture); break; //结束触摸 case EasyTouch.EvtType.On_TouchUp: OnTouchEnd(currentGesture); break; //开始滑动 case EasyTouch.EvtType.On_Swipe: OnSwipe(currentGesture); break; //简单点击下 case EasyTouch.EvtType.On_SimpleTap: Debug.Log("点击下"); break; //长按 case EasyTouch.EvtType.On_LongTap: Debug.Log("长按"); break; } } } void OnTouchEnd(Gesture gesture) { Debug.Log("OnTouchEnd"); Debug.Log("actionTime" + gesture.actionTime); } void OnSwipe(Gesture gesture) { Debug.Log("OnSwipe"); //滑动的枚举(上、下、左、右、其他) Debug.Log("swipe" + gesture.swipe); } void OnTouchStart(Gesture gesture) { if (gesture.pickedObject == gameObject) { ren.material.color = new Color(Random.Range(0, 1.0f), Random.Range(0, 1.0f), Random.Range(0, 1.0f)); } } }