summaryrefslogtreecommitdiff
path: root/Runtime/Scripting/TextAsset.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-08-14 22:50:43 +0800
committerchai <chaifix@163.com>2019-08-14 22:50:43 +0800
commit15740faf9fe9fe4be08965098bbf2947e096aeeb (patch)
treea730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/Scripting/TextAsset.cpp
+Unity Runtime codeHEADmaster
Diffstat (limited to 'Runtime/Scripting/TextAsset.cpp')
-rw-r--r--Runtime/Scripting/TextAsset.cpp70
1 files changed, 70 insertions, 0 deletions
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<class TransferFunction>
+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<script.size(); i++)
+ {
+ if((unsigned char)script[i] < 0x7f)
+ m_Script += script[i];
+ }
+ }
+ #endif
+
+ SetDirty ();
+ return true;
+}
+
+const UnityStr& TextAsset::GetScriptClassName() const {
+ static UnityStr sEmpty;
+ return sEmpty;
+}
+
+
+IMPLEMENT_CLASS (TextAsset)
+IMPLEMENT_OBJECT_SERIALIZE (TextAsset)
+INSTANTIATE_TEMPLATE_TRANSFER (TextAsset)