@@ -79,7 +79,7 @@ internal static void DrawCircle(in Vector3 center, in Vector3 upwardDirection, i
79
79
cachePosition . y = sin ;
80
80
cachePosition . z = 0 ;
81
81
82
- Quaternion rot = upwardDirection == Vector3 . zero ? Quaternion . identity : Quaternion . LookRotation ( upwardDirection ) ;
82
+ Quaternion rot = upwardDirection == Vector3 . zero || IsNan ( upwardDirection ) ? Quaternion . identity : Quaternion . LookRotation ( upwardDirection ) ;
83
83
84
84
cachePosition = rot * cachePosition ;
85
85
cachePosition += center ;
@@ -110,7 +110,7 @@ internal static void DrawNormalCircle(in Vector3 center, in Vector3 upwardDirect
110
110
cachePosition . y = sin ;
111
111
cachePosition . z = 0 ;
112
112
113
- Quaternion rot = upwardDirection == Vector3 . zero ? Quaternion . identity : Quaternion . LookRotation ( upwardDirection ) ;
113
+ Quaternion rot = upwardDirection == Vector3 . zero || IsNan ( upwardDirection ) ? Quaternion . identity : Quaternion . LookRotation ( upwardDirection ) ;
114
114
115
115
cachePosition = rot * cachePosition ;
116
116
cachePosition += center + upwardDirection * settings . CircleDistance ;
@@ -280,7 +280,7 @@ internal static void DrawArrow(
280
280
arrowHeadLength = VisualPhysicsSettingsHandler . GetEditorSettings ( ) . RegularArrowLength ;
281
281
}
282
282
283
- Quaternion rot = direction == Vector3 . zero ? Quaternion . identity : Quaternion . LookRotation ( direction ) ;
283
+ Quaternion rot = direction == Vector3 . zero || IsNan ( direction ) ? Quaternion . identity : Quaternion . LookRotation ( direction ) ;
284
284
Vector3 backDir = Vector3 . back * arrowHeadLength ;
285
285
Vector3 right = rot * Quaternion . Euler ( arrowHeadAngle , 0 , 0 ) * backDir ;
286
286
Vector3 left = rot * Quaternion . Euler ( - arrowHeadAngle , 0 , 0 ) * backDir ;
@@ -310,5 +310,9 @@ internal static void DrawRay(in Vector3 start, in Vector3 direction, in Color co
310
310
Debug . DrawRay ( start , direction , color , drawTime , true ) ;
311
311
#endif
312
312
}
313
+
314
+ internal static bool IsNan ( Vector3 vector ) {
315
+ return float . IsNaN ( vector . x ) || float . IsNaN ( vector . y ) || float . IsNaN ( vector . z ) ;
316
+ }
313
317
}
314
318
}
0 commit comments