Fix regression in curve keyframes editing

#3179
This commit is contained in:
Wojtek Figat
2025-01-27 20:19:35 +01:00
parent aabd70fbe7
commit e2fd3891d1
3 changed files with 4 additions and 4 deletions

View File

@@ -476,9 +476,9 @@ void Spline::GetKeyframes(MArray* data)
Platform::MemoryCopy(MCore::Array::GetAddress(data), Curve.GetKeyframes().Get(), sizeof(Keyframe) * Curve.GetKeyframes().Count());
}
void Spline::SetKeyframes(MArray* data)
void Spline::SetKeyframes(MArray* data, int32 keySize)
{
Curve = Span<byte>((const byte*)MCore::Array::GetAddress(data), MCore::Array::GetLength(data));
Curve = Span<byte>(MCore::Array::GetAddress<byte>(data), keySize * MCore::Array::GetLength(data));
UpdateSpline();
}

View File

@@ -372,7 +372,7 @@ private:
// Internal bindings
#if !COMPILE_WITHOUT_CSHARP
API_FUNCTION(NoProxy) void GetKeyframes(MArray* data);
API_FUNCTION(NoProxy) void SetKeyframes(MArray* data);
API_FUNCTION(NoProxy) void SetKeyframes(MArray* data, int32 keySize);
#endif
public:

View File

@@ -34,7 +34,7 @@ namespace FlaxEngine
if (value == null)
value = Utils.GetEmptyArray<BezierCurve<Transform>.Keyframe>();
_keyframes = null;
Internal_SetKeyframes(__unmanagedPtr, value);
Internal_SetKeyframes(__unmanagedPtr, value, System.Runtime.CompilerServices.Unsafe.SizeOf<BezierCurve<Transform>.Keyframe>());
}
}