EasyTouch的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EasyTouch的使用相关的知识,希望对你有一定的参考价值。

EasyTouch插件包含三个模块:Easy Button 、 Joystick 、 事件

关于按钮和事件这一块,在实际的工作中,你可以用Easy Button,也可以用其它插件,比如NGUI,效果上都是一样的

下面就具体说说Easy Button的使用,有两种使用方法: 
方法一,请看如下截图 
技术分享 
技术分享 
技术分享 
技术分享 
按钮使用方法二: 通过按钮的名字区分点击的是哪个按钮 
技术分享

关于Joystick,重点掌握以下几个方面: 
技术分享 
关于Joystick必须掌握三个语句: 
语句一: joystick.JoystickAxis 
技术分享 
语句二: float angle = move.Axis2Angle(true); 
技术分享 
语句三: move.joystickValue

最后对两个语句做个总结,如下图: 
技术分享 
技术分享

下面说说EasyTouch提供的一整套针对移动设备的事件,包括常用的单手指按下开始、单手指拖动、双手指拉大、双手指缩小、双手指扭动旋转等,代码如下:

 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 public class Photo : MonoBehaviour {
 5     private Vector3 deltaPosition;
 6     private Vector3 rotation;
 7     private bool newPivot=false;    
 8         // Subscribe to events
 9     void OnEnable(){
10         EasyTouch.On_DragStart += On_DragStart;
11         EasyTouch.On_Drag += On_Drag;
12         EasyTouch.On_TouchStart2Fingers += On_TouchStart2Fingers;
13         EasyTouch.On_TouchDown2Fingers += On_TouchDown2Fingers;
14         EasyTouch.On_PinchIn += On_PinchIn;
15         EasyTouch.On_PinchOut += On_PinchOut;
16         EasyTouch.On_Twist += On_Twist;
17         EasyTouch.On_Cancel2Fingers += On_Cancel2Fingers;
18     }
19     void OnDisable(){
20         UnsubscribeEvent();
21     }
22     void OnDestroy(){
23         UnsubscribeEvent();
24     }   
25     void UnsubscribeEvent(){
26         EasyTouch.On_DragStart -= On_DragStart;
27         EasyTouch.On_Drag -= On_Drag;
28         EasyTouch.On_TouchStart2Fingers -= On_TouchStart2Fingers;
29         EasyTouch.On_TouchDown2Fingers -= On_TouchDown2Fingers;
30         EasyTouch.On_PinchIn -= On_PinchIn;
31         EasyTouch.On_PinchOut -= On_PinchOut;
32         EasyTouch.On_Twist -= On_Twist; 
33         EasyTouch.On_Cancel2Fingers -= On_Cancel2Fingers;
34     }   
35     void On_Cancel2Fingers( Gesture gesture){
36         if (gesture.touchCount>0){
37             newPivot=true;  
38         }
39     }
40     // One finger drag
41     void On_DragStart( Gesture gesture){
42 
43         // restricted when there is only one touch 
44         if (gesture.touchCount==1){
45             // Calculate the delta position between touch and photo center position
46             Vector3 position = gesture.GetTouchToWordlPoint(1);
47             deltaPosition = position - transform.position;
48         }
49     }   
50     void On_Drag( Gesture gesture){
51 
52         if (gesture.touchCount==1){
53             Vector3 position = gesture.GetTouchToWordlPoint(1); 
54             if (newPivot){
55                 deltaPosition = position - transform.position;
56                 newPivot = false;
57             }
58 
59             transform.position = position - deltaPosition;
60         }
61 
62     }   
63     // when a two finger gesture begining
64     void On_TouchStart2Fingers(Gesture gesture){
65 
66         // Calculate the delta position between touch and photo center position
67         Vector3 position = gesture.GetTouchToWordlPoint(1);
68         deltaPosition = position - transform.position;
69     }   
70     void On_TouchDown2Fingers(Gesture gesture){
71 
72         // Moving during pinch & twist
73         Vector3 position = gesture.GetTouchToWordlPoint(1);
74         transform.position = position - deltaPosition;
75     }   
76     // 双手指缩小
77     void On_PinchIn(Gesture gesture){
78 
79         float zoom = Time.deltaTime * gesture.deltaPinch/25;
80         Vector3 scale = transform.localScale ;
81 
82         if ( scale.x - zoom>0.1)
83             transform.localScale = new Vector3( scale.x - zoom, scale.y -zoom,1f);
84     }
85     // 双手指放大
86     void On_PinchOut(Gesture gesture){
87 
88         float zoom = Time.deltaTime * gesture.deltaPinch/25;
89         Vector3 scale = transform.localScale ;
90 
91         if ( scale.x + zoom<3 )
92             transform.localScale = new Vector3( scale.x + zoom, scale.y +zoom,1f);
93     }   
94     //双手指按压扭动旋转
95     void  On_Twist( Gesture gesture){
96 
97         transform.Rotate(new Vector3(0,0,gesture.twistAngle));
98     }    
99 }

 原文地址:http://blog.csdn.net/qq_15267341/article/details/51581730

















以上是关于EasyTouch的使用的主要内容,如果未能解决你的问题,请参考以下文章

EasyTouch的使用

Unityunity5.3+Easytouch4.3——EasyTouch及摇杆控件介绍

NGUI与EasyTouch结合使用

EasyTouch的使用官方文档操作步骤

unity easytouch怎么用?unity easytouch摇杆怎么做?

EasyTouch3.1的添加步骤