赞
踩
在用Unity做微信小游戏的时候遇到了需要禁用多点触控的需求。
起初在网上查到的方法是,但是并不起作用。
Input.multiTouchEnabled = false; //-- 禁止多点触摸
原因是这个API是给input输入事件用的,当使用Input.GetTouch之类的方法控制触摸时才有用。
而如果使用的是EventSytem来控制触摸话就需要另外的方法。
下面的代码实现了 只允许单指触发OnDrag()的效果。当多根手指放在物体上时,会以最后放在屏幕上的那根手指为准,其他的手指不触发OnDrag()。
using UnityEngine; using UnityEngine.EventSystems; public class InputSingleFinger : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler { private int eventPointerId; public void OnBeginDrag( PointerEventData eventData ) { eventPointerId = eventData.pointerId; } public void OnDrag( PointerEventData eventData ) { if( eventData.pointerId != eventPointerId ) { return; } } public void OnEndDrag( PointerEventData eventData ) { if( eventData.pointerId != eventPointerId ) { return; } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。