解决FingerGestures V3.1在部分安卓机型上出现异常的bug

针对FingerGestures V3.1在部分安卓机型,如OPPO A57上出现由于手指索引为负数导致的数组越界异常,解决方案是在FGTouchInputProvider.cs的UpdateFingerTouchMap函数中修正if条件,避免快速手势操作触发错误。
摘要由CSDN通过智能技术生成

FGTouchInputProvider.cs 

UpdateFingerTouchMap 函数替换成如下

    void UpdateFingerTouchMap()
    {
        for( int i = 0; i < finger2touchMap.Length; ++i )
            finger2touchMap[i] = -1;

		if (Input.touchCount != Input.touches.Length) 
		{
			string e = string.Format("Input.touchCount != Input.touches.Length");
			throw new System.Exception(e);
		}
		// Android: work around strange Touch.fingerId values after resuming application. 
		// Not sure yet if this is a Unity bug or OS/Hardware issue with some android devices
		// e.g. the first touch on the screen can return a fingerId greater than 0 (4, 5... even 32 has been seen!)
		// NOTE: this bug should be fixed in Unity 4.1+
#if UNITY_ANDROID
		if ( fixAndroidTouchIdBug )
        {
			if (Input.touchCount > 0 && Input.touches.Length <= 0) 
			{
				string e = string.Format("Input.touchCount > 0 && Input.touches.Length <= 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值