@needle-tools/engine 2.65.1-pre → 2.65.2-pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/dist/needle-engine.js +81 -28
- package/dist/needle-engine.umd.cjs +2 -2
- package/lib/engine/extensions/NEEDLE_techniques_webgl.js +5 -2
- package/lib/engine/extensions/NEEDLE_techniques_webgl.js.map +1 -1
- package/lib/engine-components/Animator.d.ts +25 -1
- package/lib/engine-components/Animator.js +64 -37
- package/lib/engine-components/Animator.js.map +1 -1
- package/lib/engine-components/AnimatorController.d.ts +14 -12
- package/lib/engine-components/AnimatorController.js +15 -13
- package/lib/engine-components/AnimatorController.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/extensions/NEEDLE_techniques_webgl.ts +5 -2
- package/src/engine-components/Animator.ts +54 -27
- package/src/engine-components/AnimatorController.ts +15 -13
|
@@ -50,55 +50,82 @@ export class Animator extends Behaviour {
|
|
|
50
50
|
return this._animatorController;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
this.runtimeAnimatorController?.Play(name, layer, normalizedTime, transitionDurationInSec);
|
|
55
|
-
}
|
|
53
|
+
// NOTE: the uppercase events have been deprecated because UnityEvent methods are all exported with lowercase first letter
|
|
56
54
|
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
/**@deprecated use play */
|
|
56
|
+
Play(name: string | number, layer: number = -1, normalizedTime: number = Number.NEGATIVE_INFINITY, transitionDurationInSec: number = 0) { this.play(name, layer, normalizedTime, transitionDurationInSec); }
|
|
57
|
+
play(name: string | number, layer: number = -1, normalizedTime: number = Number.NEGATIVE_INFINITY, transitionDurationInSec: number = 0) {
|
|
58
|
+
this.runtimeAnimatorController?.play(name, layer, normalizedTime, transitionDurationInSec);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
/**@deprecated use reset */
|
|
62
|
+
Reset() { this.reset(); }
|
|
63
|
+
reset() {
|
|
64
|
+
this._animatorController?.reset();
|
|
63
65
|
}
|
|
64
66
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
/**@deprecated use setBool */
|
|
68
|
+
SetBool(name: string | number, val: boolean) { this.setBool(name, val); }
|
|
69
|
+
setBool(name: string | number, value: boolean) {
|
|
70
|
+
this.runtimeAnimatorController?.setBool(name, value);
|
|
67
71
|
}
|
|
68
72
|
|
|
69
|
-
|
|
70
|
-
|
|
73
|
+
/**@deprecated use getBool */
|
|
74
|
+
GetBool(name: string | number) { return this.getBool(name); }
|
|
75
|
+
getBool(name: string | number): boolean {
|
|
76
|
+
console.log("name", name);
|
|
77
|
+
return this.runtimeAnimatorController?.getBool(name) ?? false;
|
|
71
78
|
}
|
|
72
79
|
|
|
73
|
-
|
|
74
|
-
|
|
80
|
+
/**@deprecated use setFloat */
|
|
81
|
+
SetFloat(name: string | number, val: number) { this.setFloat(name, val); }
|
|
82
|
+
setFloat(name: string | number, val: number) {
|
|
83
|
+
this.runtimeAnimatorController?.setFloat(name, val);
|
|
75
84
|
}
|
|
76
85
|
|
|
77
|
-
|
|
78
|
-
|
|
86
|
+
/**@deprecated use getFloat */
|
|
87
|
+
GetFloat(name: string | number) { return this.getFloat(name); }
|
|
88
|
+
getFloat(name: string | number): number {
|
|
89
|
+
return this.runtimeAnimatorController?.getFloat(name) ?? -1;
|
|
79
90
|
}
|
|
80
91
|
|
|
81
|
-
|
|
82
|
-
|
|
92
|
+
/**@deprecated use setInteger */
|
|
93
|
+
SetInteger(name: string | number, val: number) { this.setInteger(name, val); }
|
|
94
|
+
setInteger(name: string | number, val: number) {
|
|
95
|
+
this.runtimeAnimatorController?.setInteger(name, val);
|
|
83
96
|
}
|
|
84
97
|
|
|
85
|
-
|
|
86
|
-
|
|
98
|
+
/**@deprecated use getInteger */
|
|
99
|
+
GetInteger(name: string | number) { return this.getInteger(name); }
|
|
100
|
+
getInteger(name: string | number): number {
|
|
101
|
+
return this.runtimeAnimatorController?.getInteger(name) ?? -1;
|
|
87
102
|
}
|
|
88
103
|
|
|
89
|
-
|
|
90
|
-
|
|
104
|
+
/**@deprecated use setTrigger */
|
|
105
|
+
SetTrigger(name: string | number) { this.setTrigger(name); }
|
|
106
|
+
setTrigger(name: string | number) {
|
|
107
|
+
console.log("name", name);
|
|
108
|
+
this.runtimeAnimatorController?.setTrigger(name);
|
|
91
109
|
}
|
|
92
110
|
|
|
93
|
-
|
|
94
|
-
|
|
111
|
+
/**@deprecated use resetTrigger */
|
|
112
|
+
ResetTrigger(name: string | number) { this.resetTrigger(name); }
|
|
113
|
+
resetTrigger(name: string | number) {
|
|
114
|
+
this.runtimeAnimatorController?.resetTrigger(name);
|
|
95
115
|
}
|
|
96
116
|
|
|
117
|
+
/**@deprecated use isInTransition */
|
|
118
|
+
IsInTransition() { return this.isInTransition(); }
|
|
119
|
+
isInTransition(): boolean {
|
|
120
|
+
return this.runtimeAnimatorController?.isInTransition() ?? false;
|
|
121
|
+
}
|
|
97
122
|
|
|
98
|
-
|
|
123
|
+
/**@deprecated use setSpeed */
|
|
124
|
+
SetSpeed(speed: number) { return this.setSpeed(speed); }
|
|
125
|
+
setSpeed(speed: number) {
|
|
99
126
|
if (speed === this.speed) return;
|
|
100
127
|
this.speed = speed;
|
|
101
|
-
this._animatorController?.
|
|
128
|
+
this._animatorController?.setSpeed(speed);
|
|
102
129
|
}
|
|
103
130
|
|
|
104
131
|
set minMaxSpeed(minMax: { x: number, y: number }) {
|
|
@@ -130,7 +157,7 @@ export class Animator extends Behaviour {
|
|
|
130
157
|
this.runtimeAnimatorController = clone;
|
|
131
158
|
console.assert(this.runtimeAnimatorController === clone);
|
|
132
159
|
this.runtimeAnimatorController.bind(this);
|
|
133
|
-
this.runtimeAnimatorController.
|
|
160
|
+
this.runtimeAnimatorController.setSpeed(this.speed);
|
|
134
161
|
this.runtimeAnimatorController.normalizedStartOffset = this.normalizedStartOffset;
|
|
135
162
|
}
|
|
136
163
|
else console.warn("Could not clone animator controller", this.runtimeAnimatorController);
|
|
@@ -139,7 +166,7 @@ export class Animator extends Behaviour {
|
|
|
139
166
|
|
|
140
167
|
onDisable() {
|
|
141
168
|
if (!this.keepAnimatorControllerStateOnDisable)
|
|
142
|
-
this._animatorController?.
|
|
169
|
+
this._animatorController?.reset();
|
|
143
170
|
}
|
|
144
171
|
|
|
145
172
|
onBeforeRender() {
|
|
@@ -14,7 +14,7 @@ const debugRootMotion = getParam("debugrootmotion");
|
|
|
14
14
|
|
|
15
15
|
export class AnimatorController {
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
play(name: string | number, layerIndex: number = -1, normalizedTime: number = Number.NEGATIVE_INFINITY, durationInSec: number = 0) {
|
|
18
18
|
if (layerIndex < 0) layerIndex = 0;
|
|
19
19
|
else if (layerIndex >= this.model.layers.length) {
|
|
20
20
|
console.warn("invalid layer");
|
|
@@ -33,61 +33,63 @@ export class AnimatorController {
|
|
|
33
33
|
console.warn("Could not find " + name + " to play");
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
reset() {
|
|
37
37
|
this.setStartTransition();
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
setBool(name: string | number, value: boolean) {
|
|
41
41
|
const key = typeof name === "string" ? "name" : "hash";
|
|
42
42
|
return this.model?.parameters?.filter(p => p[key] === name).forEach(p => p.value = value);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
getBool(name: string | number): boolean {
|
|
46
46
|
const key = typeof name === "string" ? "name" : "hash";
|
|
47
47
|
return this.model?.parameters?.find(p => p[key] === name)?.value as boolean ?? false;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
setFloat(name: string | number, val: number) {
|
|
51
51
|
const key = typeof name === "string" ? "name" : "hash";
|
|
52
52
|
return this.model?.parameters?.filter(p => p[key] === name).forEach(p => p.value = val);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
getFloat(name: string | number): number {
|
|
56
56
|
const key = typeof name === "string" ? "name" : "hash";
|
|
57
57
|
return this.model?.parameters?.find(p => p[key] === name)?.value as number ?? 0;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
setInteger(name: string | number, val: number) {
|
|
61
61
|
const key = typeof name === "string" ? "name" : "hash";
|
|
62
62
|
return this.model?.parameters?.filter(p => p[key] === name).forEach(p => p.value = val);
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
getInteger(name: string | number): number {
|
|
66
66
|
const key = typeof name === "string" ? "name" : "hash";
|
|
67
67
|
return this.model?.parameters?.find(p => p[key] === name)?.value as number ?? 0;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
setTrigger(name: string | number) {
|
|
71
71
|
if (debug)
|
|
72
72
|
console.log("SET TRIGGER", name);
|
|
73
73
|
const key = typeof name === "string" ? "name" : "hash";
|
|
74
74
|
return this.model?.parameters?.filter(p => p[key] === name).forEach(p => p.value = true);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
resetTrigger(name: string | number) {
|
|
78
78
|
const key = typeof name === "string" ? "name" : "hash";
|
|
79
79
|
return this.model?.parameters?.filter(p => p[key] === name).forEach(p => p.value = false);
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
isInTransition(): boolean {
|
|
83
83
|
return this._activeStates.length > 1;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
setSpeed(speed: number) {
|
|
87
87
|
this._speed = speed;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
/**@deprecated use findState */
|
|
91
|
+
FindState(name: string | undefined | null): State | null { return this.findState(name); }
|
|
92
|
+
findState(name: string | undefined | null): State | null {
|
|
91
93
|
if (!name) return null;
|
|
92
94
|
if (Array.isArray(this.model.layers)) {
|
|
93
95
|
for (const layer of this.model.layers) {
|