From 92b155dbb316cbc0409f1261997f9d021faadce9 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Fri, 12 May 2023 13:58:39 +0200 Subject: [PATCH] Fix creating C# scripts in Editor with private `ctor` method #1018 --- Source/Editor/Scripting/ScriptType.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Source/Editor/Scripting/ScriptType.cs b/Source/Editor/Scripting/ScriptType.cs index aa0ca5655..d174b7dff 100644 --- a/Source/Editor/Scripting/ScriptType.cs +++ b/Source/Editor/Scripting/ScriptType.cs @@ -832,7 +832,7 @@ namespace FlaxEditor.Scripting get { if (_managed != null) - return _managed.GetConstructor(Type.EmptyTypes) != null; + return _managed.GetConstructor(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, null, Type.EmptyTypes, null) != null; return _custom?.CanCreateInstance ?? false; } } @@ -892,7 +892,12 @@ namespace FlaxEditor.Scripting public object CreateInstance() { if (_managed != null) - return Activator.CreateInstance(_managed); + { + var ctor = _managed.GetConstructor(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, null, Type.EmptyTypes, null); + object value = RuntimeHelpers.GetUninitializedObject(_managed); + ctor.Invoke(value, null); + return value; + } return _custom.CreateInstance(); }