fingergestures旋转怎么做,监听手势事件和对应响应怎么做
1,在Hierarchy加入FingerGestures2,添加组件TwistRecognizer3,增加脚本TapTutorial这是我做的步骤,但是没反应。下面是Ta...
1, 在Hierarchy加入FingerGestures2,添加组件Twist Recognizer3, 增加脚本TapTutorial这是我做的步骤,但是没反应。
下面是TapTutorial脚本里的东西
void OnTwist( TwistGesture gesture )
{
// 识别器当前状态 (Started/Updated/Ended)
ContinuousGesturePhase phase = gesture.Phase;
// 最近一次角度变化(度)
float delta = gesture.DeltaRotation;
// 总的角度变化(度)
float total = gesture.TotalRotation;
} 展开
下面是TapTutorial脚本里的东西
void OnTwist( TwistGesture gesture )
{
// 识别器当前状态 (Started/Updated/Ended)
ContinuousGesturePhase phase = gesture.Phase;
// 最近一次角度变化(度)
float delta = gesture.DeltaRotation;
// 总的角度变化(度)
float total = gesture.TotalRotation;
} 展开
1个回答
2016-01-26 · 知道合伙人互联网行家
护肤达人IT宅族
知道合伙人互联网行家
向TA提问 私信TA
知道合伙人互联网行家
采纳数:5637
获赞数:17441
毕业于曲阜师范大学,学士学位。互联网行业2年从业经验,读过SEO相关书籍。现任爱家网SEO优化专员。
向TA提问 私信TA
关注
展开全部
FingerEvent.cs脚本
001 using UnityEngine;
002 using System.Collections;
003
004 public class FingerEvent : MonoBehaviour {
005
006 void OnEnable()
007 {
008 //启动时调用,这里开始注册手势操作的事件。
009
010 //按下事件: OnFingerDown就是按下事件监听的方法,这个名子可以由你来自定义。方法只能在本类中监听。下面所有的事件都一样!!!
011 FingerGestures.OnFingerDown += OnFingerDown;
012 //抬起事件
013 FingerGestures.OnFingerUp += OnFingerUp;
014 //开始拖动事件
015 FingerGestures.OnFingerDragBegin += OnFingerDragBegin;
016 //拖动中事件...
017 FingerGestures.OnFingerDragMove += OnFingerDragMove;
018 //拖动结束事件
019 FingerGestures.OnFingerDragEnd += OnFingerDragEnd;
020 //上、下、左、右、四个方向的手势滑动
021 FingerGestures.OnFingerSwipe += OnFingerSwipe;
022 //连击事件 连续点击事件
023 FingerGestures.OnFingerTap += OnFingerTap;
024 //按下事件后调用一下三个方法
025 FingerGestures.OnFingerStationaryBegin += OnFingerStationaryBegin;
026 FingerGestures.OnFingerStationary += OnFingerStationary;
027 FingerGestures.OnFingerStationaryEnd += OnFingerStationaryEnd;
028 //长按事件
029 FingerGestures.OnFingerLongPress += OnFingerLongPress;
030
031 }
032
033 void OnDisable()
034 {
035 //关闭时调用,这里销毁手势操作的事件
036 //和上面一样
037 FingerGestures.OnFingerDown -= OnFingerDown;
038 FingerGestures.OnFingerUp -= OnFingerUp;
039 FingerGestures.OnFingerDragBegin -= OnFingerDragBegin;
040 FingerGestures.OnFingerDragMove -= OnFingerDragMove;
041 FingerGestures.OnFingerDragEnd -= OnFingerDragEnd;
042 FingerGestures.OnFingerSwipe -= OnFingerSwipe;
043 FingerGestures.OnFingerTap -= OnFingerTap;
044 FingerGestures.OnFingerStationaryBegin -= OnFingerStationaryBegin;
045 FingerGestures.OnFingerStationary -= OnFingerStationary;
046 FingerGestures.OnFingerStationaryEnd -= OnFingerStationaryEnd;
047 FingerGestures.OnFingerLongPress -= OnFingerLongPress;
048 }
049
050 //按下时调用
051 void OnFingerDown( int fingerIndex, Vector2 fingerPos )
052 {
053 //int fingerIndex 是手指的ID 第一按下的手指就是 0 第二个按下的手指就是1。。。一次类推。
054 //Vector2 fingerPos 手指按下屏幕中的2D坐标
055
056 //将2D坐标转换成3D坐标
057 transform.position = GetWorldPos( fingerPos );
058 Debug.Log(" OnFingerDown =" +fingerPos);
059 }
060
061 //抬起时调用
062 void OnFingerUp( int fingerIndex, Vector2 fingerPos, float timeHeldDow )
063 {
064
065 Debug.Log(" OnFingerUp =" +fingerPos);
066 }
067
068 //开始滑动
069 void OnFingerDragBegin( int fingerIndex, Vector2 fingerPos, Vector2 startPos )
070 {
071 Debug.Log("OnFingerDragBegin fingerIndex =" + fingerIndex + " fingerPos ="+fingerPos +"startPos =" +startPos);
072 }
073 //滑动结束
074 void OnFingerDragEnd( int fingerIndex, Vector2 fingerPos )
075 {
076
077 Debug.Log("OnFingerDragEnd fingerIndex =" + fingerIndex + " fingerPos ="+fingerPos);
078 }
079 //滑动中
080 void OnFingerDragMove( int fingerIndex, Vector2 fingerPos, Vector2 delta )
081 {
082 transform.position = GetWorldPos( fingerPos );
083 Debug.Log(" OnFingerDragMove =" +fingerPos);
084
085 }
086 //上下左右四方方向滑动手势操作
087 void OnFingerSwipe( int fingerIndex, Vector2 startPos, FingerGestures.SwipeDirection direction, float velocity )
088 {
089 //结果是 Up Down Left Right 四个方向
090 Debug.Log("OnFingerSwipe " + direction + " with finger " + fingerIndex);
091
092 }
093
094 //连续按下事件, tapCount就是当前连续按下几次
095 void OnFingerTap( int fingerIndex, Vector2 fingerPos, int tapCount )
096 {
097
098 Debug.Log("OnFingerTap " + tapCount + " times with finger " + fingerIndex);
099
100 }
101
102 //按下事件开始后调用,包括 开始 结束 持续中状态只到下次事件开始!
103 void OnFingerStationaryBegin( int fingerIndex, Vector2 fingerPos )
104 {
105
106 Debug.Log("OnFingerStationaryBegin " + fingerPos + " times with finger " + fingerIndex);
107 }
108
109 void OnFingerStationary( int fingerIndex, Vector2 fingerPos, float elapsedTime )
110 {
111
112 Debug.Log("OnFingerStationary " + fingerPos + " times with finger " + fingerIndex);
113
114 }
115
116 void OnFingerStationaryEnd( int fingerIndex, Vector2 fingerPos, float elapsedTime )
117 {
118
119 Debug.Log("OnFingerStationaryEnd " + fingerPos + " times with finger " + fingerIndex);
120 }
121
122 //长按事件
123 void OnFingerLongPress( int fingerIndex, Vector2 fingerPos )
124 {
125
126 Debug.Log("OnFingerLongPress " + fingerPos );
127 }
128
129 //把Unity屏幕坐标换算成3D坐标
130 Vector3 GetWorldPos( Vector2 screenPos )
131 {
132 Camera mainCamera = Camera.main;
133 return mainCamera.ScreenToWorldPoint( new Vector3( screenPos.x, screenPos.y, Mathf.Abs( transform.position.z - mainCamera.transform.position.z ) ) );
134 }
135 }
001 using UnityEngine;
002 using System.Collections;
003
004 public class FingerEvent : MonoBehaviour {
005
006 void OnEnable()
007 {
008 //启动时调用,这里开始注册手势操作的事件。
009
010 //按下事件: OnFingerDown就是按下事件监听的方法,这个名子可以由你来自定义。方法只能在本类中监听。下面所有的事件都一样!!!
011 FingerGestures.OnFingerDown += OnFingerDown;
012 //抬起事件
013 FingerGestures.OnFingerUp += OnFingerUp;
014 //开始拖动事件
015 FingerGestures.OnFingerDragBegin += OnFingerDragBegin;
016 //拖动中事件...
017 FingerGestures.OnFingerDragMove += OnFingerDragMove;
018 //拖动结束事件
019 FingerGestures.OnFingerDragEnd += OnFingerDragEnd;
020 //上、下、左、右、四个方向的手势滑动
021 FingerGestures.OnFingerSwipe += OnFingerSwipe;
022 //连击事件 连续点击事件
023 FingerGestures.OnFingerTap += OnFingerTap;
024 //按下事件后调用一下三个方法
025 FingerGestures.OnFingerStationaryBegin += OnFingerStationaryBegin;
026 FingerGestures.OnFingerStationary += OnFingerStationary;
027 FingerGestures.OnFingerStationaryEnd += OnFingerStationaryEnd;
028 //长按事件
029 FingerGestures.OnFingerLongPress += OnFingerLongPress;
030
031 }
032
033 void OnDisable()
034 {
035 //关闭时调用,这里销毁手势操作的事件
036 //和上面一样
037 FingerGestures.OnFingerDown -= OnFingerDown;
038 FingerGestures.OnFingerUp -= OnFingerUp;
039 FingerGestures.OnFingerDragBegin -= OnFingerDragBegin;
040 FingerGestures.OnFingerDragMove -= OnFingerDragMove;
041 FingerGestures.OnFingerDragEnd -= OnFingerDragEnd;
042 FingerGestures.OnFingerSwipe -= OnFingerSwipe;
043 FingerGestures.OnFingerTap -= OnFingerTap;
044 FingerGestures.OnFingerStationaryBegin -= OnFingerStationaryBegin;
045 FingerGestures.OnFingerStationary -= OnFingerStationary;
046 FingerGestures.OnFingerStationaryEnd -= OnFingerStationaryEnd;
047 FingerGestures.OnFingerLongPress -= OnFingerLongPress;
048 }
049
050 //按下时调用
051 void OnFingerDown( int fingerIndex, Vector2 fingerPos )
052 {
053 //int fingerIndex 是手指的ID 第一按下的手指就是 0 第二个按下的手指就是1。。。一次类推。
054 //Vector2 fingerPos 手指按下屏幕中的2D坐标
055
056 //将2D坐标转换成3D坐标
057 transform.position = GetWorldPos( fingerPos );
058 Debug.Log(" OnFingerDown =" +fingerPos);
059 }
060
061 //抬起时调用
062 void OnFingerUp( int fingerIndex, Vector2 fingerPos, float timeHeldDow )
063 {
064
065 Debug.Log(" OnFingerUp =" +fingerPos);
066 }
067
068 //开始滑动
069 void OnFingerDragBegin( int fingerIndex, Vector2 fingerPos, Vector2 startPos )
070 {
071 Debug.Log("OnFingerDragBegin fingerIndex =" + fingerIndex + " fingerPos ="+fingerPos +"startPos =" +startPos);
072 }
073 //滑动结束
074 void OnFingerDragEnd( int fingerIndex, Vector2 fingerPos )
075 {
076
077 Debug.Log("OnFingerDragEnd fingerIndex =" + fingerIndex + " fingerPos ="+fingerPos);
078 }
079 //滑动中
080 void OnFingerDragMove( int fingerIndex, Vector2 fingerPos, Vector2 delta )
081 {
082 transform.position = GetWorldPos( fingerPos );
083 Debug.Log(" OnFingerDragMove =" +fingerPos);
084
085 }
086 //上下左右四方方向滑动手势操作
087 void OnFingerSwipe( int fingerIndex, Vector2 startPos, FingerGestures.SwipeDirection direction, float velocity )
088 {
089 //结果是 Up Down Left Right 四个方向
090 Debug.Log("OnFingerSwipe " + direction + " with finger " + fingerIndex);
091
092 }
093
094 //连续按下事件, tapCount就是当前连续按下几次
095 void OnFingerTap( int fingerIndex, Vector2 fingerPos, int tapCount )
096 {
097
098 Debug.Log("OnFingerTap " + tapCount + " times with finger " + fingerIndex);
099
100 }
101
102 //按下事件开始后调用,包括 开始 结束 持续中状态只到下次事件开始!
103 void OnFingerStationaryBegin( int fingerIndex, Vector2 fingerPos )
104 {
105
106 Debug.Log("OnFingerStationaryBegin " + fingerPos + " times with finger " + fingerIndex);
107 }
108
109 void OnFingerStationary( int fingerIndex, Vector2 fingerPos, float elapsedTime )
110 {
111
112 Debug.Log("OnFingerStationary " + fingerPos + " times with finger " + fingerIndex);
113
114 }
115
116 void OnFingerStationaryEnd( int fingerIndex, Vector2 fingerPos, float elapsedTime )
117 {
118
119 Debug.Log("OnFingerStationaryEnd " + fingerPos + " times with finger " + fingerIndex);
120 }
121
122 //长按事件
123 void OnFingerLongPress( int fingerIndex, Vector2 fingerPos )
124 {
125
126 Debug.Log("OnFingerLongPress " + fingerPos );
127 }
128
129 //把Unity屏幕坐标换算成3D坐标
130 Vector3 GetWorldPos( Vector2 screenPos )
131 {
132 Camera mainCamera = Camera.main;
133 return mainCamera.ScreenToWorldPoint( new Vector3( screenPos.x, screenPos.y, Mathf.Abs( transform.position.z - mainCamera.transform.position.z ) ) );
134 }
135 }
追问
大神,能给说明一下,使用fingergestures怎样实现两个手指使物体旋转的详细点的步骤吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询