-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Expand file tree
/
Copy pathAnimatorOverrideController.bindings.cs
More file actions
158 lines (129 loc) · 5.57 KB
/
Copy pathAnimatorOverrideController.bindings.cs
File metadata and controls
158 lines (129 loc) · 5.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
// Unity C# reference source
// Copyright (c) Unity Technologies. For terms of use, see
// https://unity3d.com/legal/licenses/Unity_Reference_Only_License
using System;
using UnityEngine.Bindings;
using UnityEngine.Scripting;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Collections;
using System.Collections.Generic;
namespace UnityEngine
{
[Obsolete("This class is not used anymore. See AnimatorOverrideController.GetOverrides() and AnimatorOverrideController.ApplyOverrides()")]
[Serializable]
[StructLayout(LayoutKind.Sequential)]
public class AnimationClipPair
{
public AnimationClip originalClip;
public AnimationClip overrideClip;
}
[NativeHeader("Modules/Animation/AnimatorOverrideController.h")]
[NativeHeader("Modules/Animation/ScriptBindings/Animation.bindings.h")]
[UsedByNativeCode]
[HelpURL("AnimatorOverrideController")]
public class AnimatorOverrideController : RuntimeAnimatorController
{
public AnimatorOverrideController()
{
Internal_Create(this, null);
OnOverrideControllerDirty = null;
}
public AnimatorOverrideController(RuntimeAnimatorController controller)
{
Internal_Create(this, controller);
OnOverrideControllerDirty = null;
}
[FreeFunction("AnimationBindings::CreateAnimatorOverrideController")]
extern private static void Internal_Create([Writable] AnimatorOverrideController self, RuntimeAnimatorController controller);
// The runtime representation of AnimatorController that controls the Animator
extern public RuntimeAnimatorController runtimeAnimatorController
{
[NativeMethod("GetAnimatorController")]
get;
[NativeMethod("SetAnimatorController")]
set;
}
// Returns the animation clip named /name/.
public AnimationClip this[string name]
{
get { return Internal_GetClipByName(name, true); }
set { Internal_SetClipByName(name, value); }
}
[NativeMethod("GetClip")]
extern private AnimationClip Internal_GetClipByName(string name, bool returnEffectiveClip);
[NativeMethod("SetClip")]
extern private void Internal_SetClipByName(string name, AnimationClip clip);
// Returns the animation clip named /name/.
public AnimationClip this[AnimationClip clip]
{
get { return GetClip(clip, true); }
set { SetClip(clip, value, true); }
}
extern private AnimationClip GetClip(AnimationClip originalClip, bool returnEffectiveClip);
extern private void SetClip(AnimationClip originalClip, AnimationClip overrideClip, bool notify);
extern private void SendNotification();
extern private AnimationClip GetOriginalClip(int index);
extern private AnimationClip GetOverrideClip(AnimationClip originalClip);
extern public int overridesCount
{
[NativeMethod("GetOriginalClipsCount")]
get;
}
public void GetOverrides(List<KeyValuePair<AnimationClip, AnimationClip>> overrides)
{
if (overrides == null)
throw new System.ArgumentNullException("overrides");
int count = overridesCount;
if (overrides.Capacity < count)
overrides.Capacity = count;
overrides.Clear();
for (int i = 0; i < count; ++i)
{
AnimationClip originalClip = GetOriginalClip(i);
overrides.Add(new KeyValuePair<AnimationClip, AnimationClip>(originalClip, GetOverrideClip(originalClip)));
}
}
public void ApplyOverrides(IList<KeyValuePair<AnimationClip, AnimationClip>> overrides)
{
if (overrides == null)
throw new System.ArgumentNullException("overrides");
for (int i = 0; i < overrides.Count; i++)
SetClip(overrides[i].Key, overrides[i].Value, false);
SendNotification();
}
[Obsolete("AnimatorOverrideController.clips property is deprecated. Use AnimatorOverrideController.GetOverrides and AnimatorOverrideController.ApplyOverrides instead.")]
public AnimationClipPair[] clips
{
get
{
int count = overridesCount;
AnimationClipPair[] clipPair = new AnimationClipPair[count];
for (int i = 0; i < count; i++)
{
clipPair[i] = new AnimationClipPair();
clipPair[i].originalClip = GetOriginalClip(i);
clipPair[i].overrideClip = GetOverrideClip(clipPair[i].originalClip);
}
return clipPair;
}
set
{
for (int i = 0; i < value.Length; i++)
SetClip(value[i].originalClip, value[i].overrideClip, false);
SendNotification();
}
}
[NativeConditional("UNITY_EDITOR")]
extern internal void PerformOverrideClipListCleanup();
internal delegate void OnOverrideControllerDirtyCallback();
internal OnOverrideControllerDirtyCallback OnOverrideControllerDirty;
[NativeConditional("UNITY_EDITOR")]
[RequiredByNativeCode]
internal static void OnInvalidateOverrideController(AnimatorOverrideController controller)
{
if (controller.OnOverrideControllerDirty != null)
controller.OnOverrideControllerDirty();
}
}
}