Posts: 1,076
Threads: 53
Joined: Jun 2017
(03-15-2021, 02:58 AM)mchangxe Wrote: Maybe theres some secret connection in between splines im not aware of?
That would highly surprise me, but only the investigation will say for sure. Will hopefully start working on this by the end of the week.
By the way, is "Use Threading" active in your scene's splines? If so, can you test with that option disabled?
Please consider leaving a
review for Curvy. This will help a lot keeping Curvy relevant in the eyes of the Asset Store algorithm.
Posts: 1,076
Threads: 53
Joined: Jun 2017
Hi
Sorry for taking this long.
Please replace the implementation of getApproximationIndexINTERNAL with this:
Code:
public int getApproximationIndexINTERNAL(float localF, out float frag)
{
{
float testFrag;
float testIndex;
float clampedLocalF = Mathf.Clamp01(localF);
if (clampedLocalF == 1)
{
testFrag = 1;
testIndex = Mathf.Max(0, Approximation.Length - 2);
}
else
{
float testf = clampedLocalF * (Approximation.Length - 1);
testIndex = (int)testf;
testFrag = testf - testIndex;
if (testIndex > Approximation.Length - 2)
Debug.LogError($"input: {localF:R} clamped: {clampedLocalF:R} f: {testf:R} frag:{testFrag:R} index: {testIndex:R}");
}
}
float f = localF / mStepSize;
int idx = Math.Max(0, Math.Min((int)f, Approximation.Length - 2));
frag = Mathf.Max(0, Mathf.Min(f - idx, 1));
return idx;
}
If my guess of what caused the bug is right, this code should do 2 things:
- Avoid the exception. Please let me know if you still have exceptions
- log an error message when the conditions previously leading to the exception happen. Please send me the error logs when they appear.
Thanks for your patience
Please consider leaving a
review for Curvy. This will help a lot keeping Curvy relevant in the eyes of the Asset Store algorithm.