Przeglądaj źródła

检测非法值

lvjincheng 3 lat temu
rodzic
commit
cbc56a3a35

+ 9 - 1
Assets/BowArrow/Scripts/Bluetooth/AimHandler.cs

@@ -52,8 +52,16 @@ public class AimHandler : MonoBehaviour
 
     [NonSerialized] private Quaternion newRotation = Quaternion.identity;
     public void SetNewRotation(Quaternion quat) {
+        this.newRotation = quat;
+    }
+    public void SetNewRotation(o0.Geometry.Quaternion o0Quat) {
+        Quaternion quat = o0.Bow.Extension.ToUnityQuaternion(o0Quat);
         if (float.IsNaN(quat.x) || float.IsNaN(quat.y) || float.IsNaN(quat.z) || float.IsNaN(quat.w)) {
-            Debug.LogWarning("九轴算法返回的Rotation存在Nan值:" + quat.ToString());
+            Debug.LogError($"九轴Rotation存在Nan值,double:{o0Quat.ToString()},float:{quat.ToString()}");
+            return;
+        }
+        if (float.IsInfinity(quat.x) || float.IsInfinity(quat.y) || float.IsInfinity(quat.z) || float.IsInfinity(quat.w)) {
+            Debug.LogError($"九轴Rotation存在Infinity值,double:{o0Quat.ToString()},float:{quat.ToString()}");
             return;
         }
         this.newRotation = quat;

+ 2 - 2
Assets/BowArrow/Scripts/Bluetooth/New/Axis663Handler.cs

@@ -48,13 +48,13 @@ public class Axis663Handler : AxisBaseHandler
             Debug.LogError(e.Message);
             Debug.LogError(e.StackTrace);
         }
-        m_aimHandler.SetNewRotation(o0.Bow.Extension.ToUnityQuaternion(Qua));
+        m_aimHandler.SetNewRotation(Qua);
     }
 
     public override void DoIdentity()
     {
         _663Axis.SetIdentityAndSave();
-        m_aimHandler.SetNewRotation(o0.Bow.Extension.ToUnityQuaternion(_663Axis.getLastState().Qua));
+        m_aimHandler.SetNewRotation(_663Axis.getLastState().Qua);
     }
 
     public override void NotifyAxisOnShot()

+ 2 - 2
Assets/BowArrow/Scripts/Bluetooth/New/Axis9Handler.cs

@@ -52,13 +52,13 @@ public class Axis9Handler : AxisBaseHandler
             Debug.LogError(e.Message);
             Debug.LogError(e.StackTrace);
         }
-        m_aimHandler.SetNewRotation(o0.Bow.Extension.ToUnityQuaternion(Qua));
+        m_aimHandler.SetNewRotation(Qua);
     }
 
     public override void DoIdentity()
     {
         _9Axis.SetIdentityAndSave();
-        m_aimHandler.SetNewRotation(o0.Bow.Extension.ToUnityQuaternion(_9Axis.getLastState().Qua));
+        m_aimHandler.SetNewRotation(_9Axis.getLastState().Qua);
     }
 
     public override void NotifyAxisOnShot()