diff --git a/GlitchyEngine/src/Scripting/ScriptClass.bf b/GlitchyEngine/src/Scripting/ScriptClass.bf index 93a9b36..2e16085 100644 --- a/GlitchyEngine/src/Scripting/ScriptClass.bf +++ b/GlitchyEngine/src/Scripting/ScriptClass.bf @@ -199,9 +199,18 @@ class ScriptClass : SharpClass public void OnUpdate(MonoObject* instance, float deltaTime) { - MonoException* exception; + MonoException* exception = null; if (_onUpdate != null) _onUpdate(instance, deltaTime, &exception); + + if (exception != null) + { + char8* str = Mono.mono_string_to_utf8(exception.Message); + + Log.EngineLogger.Error($"Exception in \"{_fullName}.OnUpdate\". Message:\"{StringView(str)}\""); + + Mono.mono_free(str); + } } public void OnDestroy(MonoObject* instance) diff --git a/GlitchyEngineHelper/src/Mono/Mono.bf b/GlitchyEngineHelper/src/Mono/Mono.bf index c62495f..5327005 100644 --- a/GlitchyEngineHelper/src/Mono/Mono.bf +++ b/GlitchyEngineHelper/src/Mono/Mono.bf @@ -226,7 +226,13 @@ struct MonoObject; struct MonoMethod; -struct MonoException; +struct MonoException +{ + void* _bla; + void* _bla2; + void* _bla3; + public MonoString* Message; +} struct MonoClassField;