@@ -137,7 +137,8 @@ public static Vector3 GetPointByDistance(RayStep[] steps, float distance)
137137 Debug . Assert ( steps != null ) ;
138138 Debug . Assert ( steps . Length > 0 ) ;
139139
140- var ( rayStep , remainingDistance ) = GetStepByDistance ( steps , distance ) ;
140+ float remainingDistance = 0 ;
141+ RayStep rayStep = GetStepByDistance ( steps , distance , ref remainingDistance ) ;
141142 if ( remainingDistance > 0 )
142143 {
143144 return Vector3 . Lerp ( rayStep . Origin , rayStep . Terminus , remainingDistance / rayStep . Length ) ;
@@ -154,7 +155,7 @@ public static Vector3 GetPointByDistance(RayStep[] steps, float distance)
154155 /// <param name="steps"></param>
155156 /// <param name="distance"></param>
156157 /// <returns></returns>
157- public static ( RayStep rayStep , float traveledDistance ) GetStepByDistance ( RayStep [ ] steps , float distance )
158+ public static RayStep GetStepByDistance ( RayStep [ ] steps , float distance , ref float traveledDistance )
158159 {
159160 Debug . Assert ( steps != null ) ;
160161 Debug . Assert ( steps . Length > 0 ) ;
@@ -174,11 +175,13 @@ public static (RayStep rayStep, float traveledDistance) GetStepByDistance(RaySte
174175 }
175176 else
176177 {
177- return ( steps [ i ] , remainingDistance ) ;
178+ traveledDistance = remainingDistance ;
179+ return steps [ i ] ;
178180 }
179181 }
180182
181- return ( steps [ steps . Length - 1 ] , remainingDistance ) ;
183+ traveledDistance = remainingDistance ;
184+ return steps [ steps . Length - 1 ] ;
182185 }
183186
184187 /// <summary>
@@ -192,7 +195,8 @@ public static Vector3 GetDirectionByDistance(RayStep[] steps, float distance)
192195 Debug . Assert ( steps != null ) ;
193196 Debug . Assert ( steps . Length > 0 ) ;
194197
195- return GetStepByDistance ( steps , distance ) . rayStep . Direction ;
198+ float traveledDistance = 0 ;
199+ return GetStepByDistance ( steps , distance , ref traveledDistance ) . Direction ;
196200 }
197201
198202 #endregion
0 commit comments