diff options
author | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
commit | 15740faf9fe9fe4be08965098bbf2947e096aeeb (patch) | |
tree | a730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/Mono/MonoExportUtility.cpp |
Diffstat (limited to 'Runtime/Mono/MonoExportUtility.cpp')
-rw-r--r-- | Runtime/Mono/MonoExportUtility.cpp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/Runtime/Mono/MonoExportUtility.cpp b/Runtime/Mono/MonoExportUtility.cpp new file mode 100644 index 0000000..71e4451 --- /dev/null +++ b/Runtime/Mono/MonoExportUtility.cpp @@ -0,0 +1,49 @@ +#include "UnityPrefix.h" +#if ENABLE_MONO +#include "MonoExportUtility.h" +#include "MonoTypeSignatures.h" +#include "MonoScript.h" +#include "MonoScriptCache.h" +#include "Runtime/Scripting/Backend/ScriptingTypeRegistry.h" +#include "Runtime/Scripting/ScriptingUtility.h" + + +#if !GAMERELEASE +#include "Editor/Src/Utility/ObjectNames.h" +#endif + +using namespace std; + +#if UNITY_EDITOR +static ScriptingClassPtr ClassIDToScriptingClassIncludingBasicTypes (int classID) +{ + if (classID == ClassID (Undefined)) + return NULL; + else if (classID <= kLargestEditorClassID) + return Scripting::ClassIDToScriptingType (classID); + else if (classID == ClassID (int)) + return mono_get_int32_class (); + else if (classID == ClassID (bool)) + return mono_get_boolean_class(); + else if (classID == ClassID (float)) + return mono_get_single_class(); + else + { + AssertString("Unsupported classID value"); + return NULL; + } +} + +MonoObject* ClassIDToScriptingTypeObjectIncludingBasicTypes (int classID) +{ + ScriptingClassPtr klass = ClassIDToScriptingClassIncludingBasicTypes (classID); + if (klass == NULL) + return NULL; + + return mono_type_get_object(mono_domain_get(), mono_class_get_type(klass)); +} + +#endif + + +#endif //ENABLE_MONO |