diff options
Diffstat (limited to 'Runtime/Animation/ScriptBindings/AnimatorOverrideControllerBindings.txt')
-rw-r--r-- | Runtime/Animation/ScriptBindings/AnimatorOverrideControllerBindings.txt | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/Runtime/Animation/ScriptBindings/AnimatorOverrideControllerBindings.txt b/Runtime/Animation/ScriptBindings/AnimatorOverrideControllerBindings.txt new file mode 100644 index 0000000..9f73f79 --- /dev/null +++ b/Runtime/Animation/ScriptBindings/AnimatorOverrideControllerBindings.txt @@ -0,0 +1,138 @@ +C++RAW + +#include "UnityPrefix.h" +#include "Runtime/Mono/MonoBehaviour.h" +#include "Runtime/Mono/MonoScript.h" +#include "Runtime/Graphics/Transform.h" +#include "Runtime/Animation/AnimatorOverrideController.h" +#include "Runtime/Animation/AnimationClip.h" +#include "Runtime/Animation/RuntimeAnimatorController.h" +#include "Runtime/Scripting/ScriptingExportUtility.h" + +using namespace Unity; + +CSRAW + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Collections; + +namespace UnityEngine +{ + +CSRAW [System.Serializable] +CSRAW [StructLayout (LayoutKind.Sequential)] +CLASS AnimationClipPair + public AnimationClip originalClip; + public AnimationClip overrideClip; +END + +// AnimatorOverrideController definition +CLASS AnimatorOverrideController : RuntimeAnimatorController + + // Creates a new animation clip + CSRAW public AnimatorOverrideController() + { + Internal_CreateAnimationSet(this); + } + + CUSTOM private static void Internal_CreateAnimationSet ([Writable]AnimatorOverrideController self) + { + Object* animationSet = NEW_OBJECT(AnimatorOverrideController); + animationSet->Reset(); + Scripting::ConnectScriptingWrapperToObject (self.GetScriptingObject(), animationSet); + animationSet->AwakeFromLoad(kInstantiateOrCreateFromCodeAwakeFromLoad); + } + + // The runtime representation of AnimatorController that controls the Animator + CUSTOM_PROP RuntimeAnimatorController runtimeAnimatorController {return Scripting::ScriptingWrapperFor(self->GetAnimatorController());} { self->SetAnimatorController(value);} + + // Returns the animation clip named /name/. + CSRAW public AnimationClip this [string name] + { + get { return Internal_GetClipByName(name, true); } + set { Internal_SetClipByName(name, value); } + } + + CUSTOM private AnimationClip Internal_GetClipByName(string name, bool returnEffectiveClip) + { + return Scripting::ScriptingWrapperFor(self->GetClip( name, returnEffectiveClip )); + } + + CUSTOM private void Internal_SetClipByName(string name, AnimationClip clip) + { + return self->SetClip( name, clip ); + } + + // Returns the animation clip named /name/. + CSRAW public AnimationClip this [AnimationClip clip] + { + get { return Internal_GetClip(clip, true); } + set { Internal_SetClip(clip, value); } + } + + CUSTOM private AnimationClip Internal_GetClip(AnimationClip originalClip, bool returnEffectiveClip) + { + return Scripting::ScriptingWrapperFor(self->GetClip( originalClip, returnEffectiveClip)); + } + + CUSTOM private void Internal_SetClip(AnimationClip originalClip, AnimationClip overrideClip) + { + return self->SetClip( originalClip, overrideClip ); + } + + CONDITIONAL UNITY_EDITOR + CSRAW internal delegate void OnOverrideControllerDirtyCallback(); + + CONDITIONAL UNITY_EDITOR + CSRAW internal OnOverrideControllerDirtyCallback OnOverrideControllerDirty; + + CONDITIONAL UNITY_EDITOR + CSRAW internal static void OnInvalidateOverrideController(AnimatorOverrideController controller) + { + if(controller.OnOverrideControllerDirty != null) + controller.OnOverrideControllerDirty(); + } + + CSRAW public AnimationClipPair[] clips + { + get + { + AnimationClip[] originalAnimationClips = GetOriginalClips(); + + AnimationClipPair[] clipPair = new AnimationClipPair[originalAnimationClips.Length]; + for(int i=0;i<originalAnimationClips.Length;i++) + { + clipPair[i] = new AnimationClipPair(); + clipPair[i].originalClip = originalAnimationClips[i]; + clipPair[i].overrideClip = Internal_GetClip(originalAnimationClips[i], false); + } + + return clipPair; + } + set + { + for(int i=0;i<value.Length;i++) + Internal_SetClip(value[i].originalClip, value[i].overrideClip); + } + } + + CUSTOM private AnimationClip[] GetOriginalClips() + { + return CreateScriptingArrayFromUnityObjects(self->GetOriginalClips(), ClassID(AnimationClip)); + } + + CUSTOM private AnimationClip[] GetOverrideClips() + { + return CreateScriptingArrayFromUnityObjects(self->GetOverrideClips(), ClassID(AnimationClip)); + } + + CONDITIONAL UNITY_EDITOR + CUSTOM public void PerformOverrideClipListCleanup() + { + return self->PerformOverrideClipListCleanup(); + } +END + +CSRAW } |