From 15740faf9fe9fe4be08965098bbf2947e096aeeb Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 14 Aug 2019 22:50:43 +0800 Subject: +Unity Runtime code --- Runtime/Mono/MonoExportUtility.cpp | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Runtime/Mono/MonoExportUtility.cpp (limited to 'Runtime/Mono/MonoExportUtility.cpp') 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 -- cgit v1.1-26-g67d0