Fix creating C# scripts in Editor with private ctor method

#1018
This commit is contained in:
Wojtek Figat
2023-05-12 13:58:39 +02:00
parent 42c042c249
commit 92b155dbb3

View File

@@ -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();
}