Unity-EasyTouch插件之Two Finger
2015-07-04 17:46
399 查看
原文链接:https://www.geek-share.com/detail/2647003160.html
今天,我们来学习下多手指触摸屏幕的事件,分别有挤压(缩放),挤压(旋转)
挤压(缩放):
在easytouch中,双手指挤压缩放的英文为Pinch
好了今天我们的测试是双手指挤压对物体进行缩放。我们测试的是Cube。
在easytouch中,分别有挤入(PinchIn)和挤出(PinchOut)这这两个对立的触屏手势。
using UnityEngine; using System.Collections; public class TouchTest : MonoBehaviour { void OnEnable(){ EasyTouch.On_PinchIn += On_PinchIn;//挤入 EasyTouch.On_PinchOut += On_PinchOut;//挤出 EasyTouch.On_PinchEnd += On_PinchEnd;//挤压结束 } void OnDisable(){ UnsubscribeEvent(); } void OnDestroy(){ UnsubscribeEvent(); } // Unsubscribe to events void UnsubscribeEvent(){ EasyTouch.On_PinchIn -= On_PinchIn; EasyTouch.On_PinchOut -= On_PinchOut; EasyTouch.On_PinchEnd -= On_PinchEnd; } void Start(){ } private void On_PinchIn(Gesture gesture){ if (gesture.pickObject == gameObject){ float zoom = Time.deltaTime * gesture.deltaPinch; Vector3 scale = transform.localScale ; transform.localScale = new Vector3( scale.x - zoom, scale.y -zoom, scale.z-zoom); } } private void On_PinchOut(Gesture gesture){ if (gesture.pickObject == gameObject){ float zoom = Time.deltaTime * gesture.deltaPinch; Vector3 scale = transform.localScale ; transform.localScale = new Vector3( scale.x + zoom, scale.y +zoom,scale.z+zoom); } } private void On_PinchEnd(Gesture gesture){ if (gesture.pickObject == gameObject){ print ("End"); } } }
这里注意一下,挤压的时候两个手指必须都接触到GameObject,不能一只有一只没有。
可能有些小伙伴还不知道怎么在电脑上测试,在easytoucjh的属性面板里面,我们发现按下Left Alt是默认的Pinch和Twist的按键。
挤压(旋转):
在easytouch中双手挤压旋转对应的英文为Twist
using UnityEngine; using System.Collections; public class TouchTest : MonoBehaviour { void OnEnable(){ EasyTouch.On_Twist += On_Twist; EasyTouch.On_TwistEnd += On_TwistEnd; } void OnDisable(){ UnsubscribeEvent(); } void OnDestroy(){ UnsubscribeEvent(); } // Unsubscribe to events void UnsubscribeEvent(){ EasyTouch.On_Twist -= On_Twist; EasyTouch.On_TwistEnd -= On_TwistEnd; } void Start(){ } private void On_Twist(Gesture gesture) { if (gesture.pickObject == gameObject) { print(gesture.twistAngle); transform.Rotate(new Vector3(0,0,gesture.twistAngle));//旋转挤压的角度, } } private void On_TwistEnd(Gesture gesture) { if (gesture.pickObject == gameObject) { print("End"); } } }
转载于:https://www.cnblogs.com/CaomaoUnity3d/p/4621019.html
相关文章推荐
- Unity-EasyTouch插件之Two Finger
- Unity-EasyTouch插件之ReservedArea的运用(主要是避免JoyStick与Touch的矛盾)
- Unity-EasyTouch插件之ReservedArea的运用(主要是避免JoyStick与Touch的矛盾)
- [Unity2d系列教程] 005.Unity如何使用外部触控插件FingerGuesture
- Unity 3D FingerID
- Unity Input Touch fingerId
- Unity_使用EasyTouch插件碰撞检测失效的解决方法
- Two kinds of Quaternion SlerpImp (Unity)
- Unity Fingergesture
- Unity-EasyTouch插件之One Finger
- Cg Programming/Unity/Two-Sided Surfaces双面表面
- Does Unity Care is a texture of power of two
- Unity资源管理原理 Two
- Cg Programming/Unity/Two-Sided Smooth Surfaces双面平滑曲面
- 菜鸟学习 - Unity中的热更新 - 更新思路
- 在unity中对鼠标左键的点击事件和拖动区分开的语法
- two_planet_seascape-940x198.jpg
- LeetCode 28 Divide Two Integers
- Two Sum III - Data structure design
- Unity中的观察者模式