summaryrefslogtreecommitdiff
path: root/Runtime/Animation/RuntimeAnimatorController.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/Animation/RuntimeAnimatorController.cpp
+Unity Runtime codeHEADmaster
Diffstat (limited to 'Runtime/Animation/RuntimeAnimatorController.cpp')
-rw-r--r--Runtime/Animation/RuntimeAnimatorController.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/Runtime/Animation/RuntimeAnimatorController.cpp b/Runtime/Animation/RuntimeAnimatorController.cpp
new file mode 100644
index 0000000..c92e976
--- /dev/null
+++ b/Runtime/Animation/RuntimeAnimatorController.cpp
@@ -0,0 +1,66 @@
+#include "UnityPrefix.h"
+
+#include "RuntimeAnimatorController.h"
+#include "AnimationSetBinding.h"
+
+
+#include "Runtime/Serialize/TransferFunctions/SerializeTransfer.h"
+#include "Runtime/Serialize/Blobification/BlobWrite.h"
+#include "Runtime/Scripting/ScriptingUtility.h"
+#include "AnimationClip.h"
+
+#if UNITY_EDITOR
+#include "Runtime/Scripting/Backend/ScriptingInvocation.h"
+#include "Runtime/Mono/MonoManager.h"
+#endif
+
+#include "Runtime/Scripting/Backend/ScriptingInvocation.h"
+#include "Runtime/Scripting/Scripting.h"
+
+IMPLEMENT_OBJECT_SERIALIZE (RuntimeAnimatorController)
+IMPLEMENT_CLASS(RuntimeAnimatorController)
+INSTANTIATE_TEMPLATE_TRANSFER(RuntimeAnimatorController)
+
+
+RuntimeAnimatorController::RuntimeAnimatorController(MemLabelId label, ObjectCreationMode mode)
+: Super(label, mode),
+ m_ObjectUsers(this),
+ m_DependencyList(this)
+{
+
+}
+
+RuntimeAnimatorController::~RuntimeAnimatorController()
+{
+ NotifyObjectUsers( kDidModifyAnimatorController );
+}
+
+
+template<class TransferFunction>
+void RuntimeAnimatorController::Transfer (TransferFunction& transfer)
+{
+ Super::Transfer (transfer);
+}
+
+
+void RuntimeAnimatorController::NotifyObjectUsers(const MessageIdentifier& msg)
+{
+ m_ObjectUsers.SendMessage(msg);
+}
+
+void RuntimeAnimatorController::RegisterAnimationClips()
+{
+ AnimationClipVector clips = GetAnimationClipsToRegister();
+ m_DependencyList.Clear();
+ m_DependencyList.Reserve(clips.size()); // Reserve space just for niceness
+ for(int i = 0 ; i < clips.size() ; i++)
+ {
+ AnimationClip* clip = clips[i];
+ if (clip)
+ {
+ // We could do this either way, adding is symmetrical
+ clip->GetUserList().AddUser(m_DependencyList);
+ }
+ }
+}
+