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/Animation/RuntimeAnimatorController.cpp |
Diffstat (limited to 'Runtime/Animation/RuntimeAnimatorController.cpp')
-rw-r--r-- | Runtime/Animation/RuntimeAnimatorController.cpp | 66 |
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); + } + } +} + |