Search Issue Tracker
Fixed in 2021.3.18f1, 2022.2.5f1, 2023.1.0a26
Marshal.OffsetOf returns invalid value in IL2CPP for misaligned fields on macOS
Marshal.OffsetOf returns invalid value in IL2CPP for misaligned fields on macOS, .NET 7.0/ Unity Mono return correct value.
On 2022.2.0b14 on macOS (Arm) it prints:
"foo 1" under Mono (Editor and Standalone), and .NET 7.0
"foo 0" under IL2CPP
This was working previously at least in 2020.3, likely also in 2021.x
Reprocase is as following:
[StructLayout(LayoutKind.Explicit, Size = 3)]
public ushort foo;
public void ReproCase()
foreach (var field in typeof(Repro).GetFields())
var offset = (uint) Marshal.OffsetOf(field.DeclaringType, field.Name).ToInt32();
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
- Standard Unity Materials and Shaders become corrupted after importing specific Asset Packages
- [Linux][OpenGL][Vulkan] Draw calls are not shown in the Event List when taking a capture of a frame with RenderDoc
- Inaccurate collision detections when Rigidbody Collision Detection is set to "Continuous" or "Continuous Dynamic"
- Crash on Object::IncrementPersistentDirtyIndex when upgrading project version
- [iOS] Multiple Xcode project instances created before opens up when performing Build and Run for iOS Platform