Search Issue Tracker
Fixed in 5.3.7
[IL2CPP] MarshalDirectiveException; marshaling of delegates as fields of a struct is not working
Issue with marshaling of delegates as fields of a struct when using IL2CPP - As noted by the user, there are no issues when using the Mono backend.
Originally reported at: https://community.unity.com/t5/Scripting/IL2CPP-MarshalDirectiveException/m-p/2648350#U2648350
Bug reported at the request of Joshua Peterson.
Steps to Reproduce
1.Download the users reproduction project ('New Unity Project.zip').
2.Open in the editor and switch to a platform that supports IL2CPP.
3.Check that the scripting back-end is set to IL2CPP
4.Important: Tick 'Development Build' in the player settings (otherwise you won't see the exception in the TTY)
4.Select Build and Run
Running a build produced with '5.4.0f1' the following exception is spammed to the TTY:
UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object)
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)
MarshalDirectiveException: Cannot marshal field 'gameWorldReservedCB' of type 'SAMCallbacks': Reference type field marshalin
g is not supported.
at SAMTest.samInitialize (IntPtr inParams, SAMCallbacks& callbacks) [0x00000] in <filename unknown>:0
at SAMTest.Update () [0x00000] in <filename unknown>:0
(Filename: currently not available on il2cpp Line: -1)
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
- Renaming a Scene deletes its GameObjects when a Scene with that name was already deleted
- Crash on GameObject::ActivateAwakeRecursively when exiting Play Mode
- [Asset Bundles] Bundles are not cached when using certain request URLs
- [URP] Color correction effects are applied to overlay camera when only being added to the base camera
- Ribbon trail with Attach Ribbons To Transform checked and Simulation Space property set to World is attached to (0,0,0) position