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/Scripting/TextAsset.cpp | 70 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 Runtime/Scripting/TextAsset.cpp (limited to 'Runtime/Scripting/TextAsset.cpp') diff --git a/Runtime/Scripting/TextAsset.cpp b/Runtime/Scripting/TextAsset.cpp new file mode 100644 index 0000000..f21b0e6 --- /dev/null +++ b/Runtime/Scripting/TextAsset.cpp @@ -0,0 +1,70 @@ +#include "UnityPrefix.h" +#include "TextAsset.h" +#include "Runtime/Serialize/TransferFunctions/SerializeTransfer.h" +#if ENABLE_MONO +#include "Runtime/Mono/MonoIncludes.h" +#endif + + +TextAsset::TextAsset(MemLabelId label, ObjectCreationMode mode) + : Super(label, mode) +{ +} + +TextAsset::~TextAsset () +{ +} + +template +void TextAsset::Transfer (TransferFunction& transfer) +{ + Super::Transfer ( transfer); + transfer.Transfer (m_Script, "m_Script", kHideInEditorMask); + transfer.Transfer (m_PathName, "m_PathName", kHideInEditorMask); +} + +void TextAsset::AwakeFromLoad (AwakeFromLoadMode awakeMode) +{ + Super::AwakeFromLoad (awakeMode); +} + +void TextAsset::SetScriptDontDirty (const ScriptString& script) { + m_Script = script; +} + +bool TextAsset::SetScript (const ScriptString& script) { + return SetScript(script,false); +} + +bool TextAsset::SetScript (const ScriptString& script, bool actuallyContainsBinaryData) +{ + SET_ALLOC_OWNER(this); + m_Script = script; + + #if ENABLE_MONO + // Fallback. If mono doesn't accept the string, strip everything non-ASCII + if(mono_string_new_wrapper(script.c_str()) == NULL && !actuallyContainsBinaryData) + { + m_Script.clear(); + + for(int i=0; i