@galacean/engine-core 1.2.0-beta.5 → 1.3.0-alpha.0

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.
Files changed (70) hide show
  1. package/dist/main.js +18148 -16123
  2. package/dist/main.js.map +1 -1
  3. package/dist/miniprogram.js +18148 -16123
  4. package/dist/module.js +18147 -16124
  5. package/dist/module.js.map +1 -1
  6. package/package.json +3 -3
  7. package/types/2d/assembler/ISpriteAssembler.d.ts +1 -0
  8. package/types/2d/sprite/SpriteMask.d.ts +11 -0
  9. package/types/2d/sprite/SpriteRenderer.d.ts +6 -3
  10. package/types/2d/text/CharRenderInfo.d.ts +1 -0
  11. package/types/2d/text/TextRenderer.d.ts +10 -4
  12. package/types/DisorderedArray.d.ts +2 -2
  13. package/types/Engine.d.ts +3 -0
  14. package/types/RenderPipeline/BasicRenderPipeline.d.ts +11 -5
  15. package/types/RenderPipeline/BatchUtils.d.ts +1 -0
  16. package/types/RenderPipeline/BatcherManager.d.ts +1 -0
  17. package/types/RenderPipeline/Chunk.d.ts +1 -0
  18. package/types/RenderPipeline/DynamicGeometryData.d.ts +1 -0
  19. package/types/RenderPipeline/DynamicGeometryDataManager.d.ts +1 -0
  20. package/types/RenderPipeline/MaskManager.d.ts +1 -0
  21. package/types/RenderPipeline/PrimitiveChunk.d.ts +1 -0
  22. package/types/RenderPipeline/PrimitiveChunkManager.d.ts +1 -0
  23. package/types/RenderPipeline/RenderData2D.d.ts +14 -0
  24. package/types/RenderPipeline/RenderElement.d.ts +9 -6
  25. package/types/RenderPipeline/RenderQueue.d.ts +1 -30
  26. package/types/RenderPipeline/SubPrimitiveChunk.d.ts +1 -0
  27. package/types/RenderPipeline/SubRenderElement.d.ts +22 -0
  28. package/types/RenderPipeline/VertexArea.d.ts +1 -0
  29. package/types/RenderPipeline/enums/ForceUploadShaderDataFlag.d.ts +15 -0
  30. package/types/RenderPipeline/enums/RenderDataUsage.d.ts +13 -0
  31. package/types/Renderer.d.ts +4 -3
  32. package/types/Scene.d.ts +6 -0
  33. package/types/animation/Animator.d.ts +35 -6
  34. package/types/animation/AnimatorCondition.d.ts +13 -0
  35. package/types/animation/AnimatorController.d.ts +32 -2
  36. package/types/animation/AnimatorControllerParameter.d.ts +10 -0
  37. package/types/animation/AnimatorState.d.ts +15 -5
  38. package/types/animation/AnimatorStateMachine.d.ts +44 -0
  39. package/types/animation/AnimatorStateTransition.d.ts +51 -0
  40. package/types/animation/enums/AnimatorConditionMode.d.ts +9 -0
  41. package/types/animation/index.d.ts +1 -1
  42. package/types/asset/AssetType.d.ts +2 -0
  43. package/types/graphic/SubMesh.d.ts +3 -16
  44. package/types/graphic/SubPrimitive.d.ts +10 -0
  45. package/types/graphic/index.d.ts +1 -0
  46. package/types/index.d.ts +1 -1
  47. package/types/material/BaseMaterial.d.ts +1 -1
  48. package/types/mesh/SkinnedMeshRenderer.d.ts +1 -1
  49. package/types/particle/ParticleGenerator.d.ts +20 -0
  50. package/types/particle/ParticleRenderer.d.ts +3 -1
  51. package/types/particle/modules/EmissionModule.d.ts +6 -2
  52. package/types/particle/modules/MainModule.d.ts +49 -15
  53. package/types/particle/modules/ParticleCompositeCurve.d.ts +35 -10
  54. package/types/particle/modules/ParticleCurve.d.ts +16 -9
  55. package/types/particle/modules/ParticleGeneratorModule.d.ts +6 -2
  56. package/types/particle/modules/SizeOverLifetimeModule.d.ts +27 -8
  57. package/types/particle/modules/VelocityOverLifetimeModule.d.ts +29 -8
  58. package/types/particle/modules/shape/BaseShape.d.ts +14 -4
  59. package/types/particle/modules/shape/BoxShape.d.ts +7 -2
  60. package/types/particle/modules/shape/CircleShape.d.ts +25 -8
  61. package/types/particle/modules/shape/ConeShape.d.ts +24 -8
  62. package/types/particle/modules/shape/HemisphereShape.d.ts +6 -2
  63. package/types/particle/modules/shape/SphereShape.d.ts +6 -2
  64. package/types/shader/enums/ShaderDataGroup.d.ts +4 -2
  65. package/types/shader/state/RenderState.d.ts +1 -0
  66. package/types/utils/ClearableObjectPool.d.ts +16 -0
  67. package/types/utils/ObjectPool.d.ts +16 -0
  68. package/types/utils/Pool.d.ts +12 -0
  69. package/types/utils/ReturnableObjectPool.d.ts +16 -0
  70. package/types/utils/index.d.ts +3 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/engine-core",
3
- "version": "1.2.0-beta.5",
3
+ "version": "1.3.0-alpha.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -15,10 +15,10 @@
15
15
  "types/**/*"
16
16
  ],
17
17
  "dependencies": {
18
- "@galacean/engine-math": "1.2.0-beta.5"
18
+ "@galacean/engine-math": "1.3.0-alpha.0"
19
19
  },
20
20
  "devDependencies": {
21
- "@galacean/engine-design": "1.2.0-beta.5"
21
+ "@galacean/engine-design": "1.3.0-alpha.0"
22
22
  },
23
23
  "scripts": {
24
24
  "b:types": "tsc"
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,5 @@
1
+ import { BoundingBox } from "@galacean/engine-math";
2
+ import { RenderContext } from "../../RenderPipeline/RenderContext";
1
3
  import { Renderer } from "../../Renderer";
2
4
  import { Sprite } from "./Sprite";
3
5
  /**
@@ -52,6 +54,15 @@ export declare class SpriteMask extends Renderer {
52
54
  */
53
55
  get alphaCutoff(): number;
54
56
  set alphaCutoff(value: number);
57
+ protected _updateBounds(worldBounds: BoundingBox): void;
58
+ /**
59
+ * @inheritdoc
60
+ */
61
+ protected _render(context: RenderContext): void;
62
+ /**
63
+ * @inheritdoc
64
+ */
65
+ protected _onDestroy(): void;
55
66
  private _calDefaultSize;
56
67
  private _onSpriteChange;
57
68
  }
@@ -1,4 +1,5 @@
1
- import { Color } from "@galacean/engine-math";
1
+ import { BoundingBox, Color } from "@galacean/engine-math";
2
+ import { RenderContext } from "../../RenderPipeline/RenderContext";
2
3
  import { Renderer } from "../../Renderer";
3
4
  import { SpriteDrawMode } from "../enums/SpriteDrawMode";
4
5
  import { SpriteMaskInteraction } from "../enums/SpriteMaskInteraction";
@@ -20,8 +21,6 @@ export declare class SpriteRenderer extends Renderer {
20
21
  private _customHeight;
21
22
  private _flipX;
22
23
  private _flipY;
23
- private _maskLayer;
24
- private _maskInteraction;
25
24
  /**
26
25
  * The draw mode of the sprite renderer.
27
26
  */
@@ -85,7 +84,11 @@ export declare class SpriteRenderer extends Renderer {
85
84
  */
86
85
  get maskInteraction(): SpriteMaskInteraction;
87
86
  set maskInteraction(value: SpriteMaskInteraction);
87
+ protected _updateBounds(worldBounds: BoundingBox): void;
88
+ protected _render(context: RenderContext): void;
89
+ protected _onDestroy(): void;
88
90
  private _calDefaultSize;
89
91
  private _updateStencilState;
90
92
  private _onSpriteChange;
93
+ private _onColorChanged;
91
94
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,6 @@
1
1
  import { BoundingBox, Color } from "@galacean/engine-math";
2
2
  import { Entity } from "../../Entity";
3
+ import { RenderContext } from "../../RenderPipeline/RenderContext";
3
4
  import { Renderer } from "../../Renderer";
4
5
  import { FontStyle } from "../enums/FontStyle";
5
6
  import { SpriteMaskInteraction } from "../enums/SpriteMaskInteraction";
@@ -10,10 +11,11 @@ import { Font } from "./Font";
10
11
  * Renders a text for 2D graphics.
11
12
  */
12
13
  export declare class TextRenderer extends Renderer {
13
- private static _charRenderDataPool;
14
+ private static _textureProperty;
14
15
  private static _tempVec30;
15
16
  private static _tempVec31;
16
- _dirtyFlag: number;
17
+ private static _worldPositions;
18
+ private static _charRenderInfos;
17
19
  private _color;
18
20
  private _text;
19
21
  private _width;
@@ -27,8 +29,6 @@ export declare class TextRenderer extends Renderer {
27
29
  private _verticalAlignment;
28
30
  private _enableWrapping;
29
31
  private _overflowMode;
30
- private _maskInteraction;
31
- private _maskLayer;
32
32
  /**
33
33
  * Rendering color for the Text.
34
34
  */
@@ -104,9 +104,15 @@ export declare class TextRenderer extends Renderer {
104
104
  */
105
105
  get bounds(): BoundingBox;
106
106
  constructor(entity: Entity);
107
+ protected _updateBounds(worldBounds: BoundingBox): void;
108
+ protected _render(context: RenderContext): void;
107
109
  private _updateStencilState;
108
110
  private _resetSubFont;
109
111
  private _updatePosition;
112
+ private _updateColor;
110
113
  private _updateLocalData;
111
114
  private _isTextNoVisible;
115
+ private _buildChunk;
116
+ private _freeTextChunks;
117
+ private _onColorChanged;
112
118
  }
@@ -18,10 +18,10 @@ export declare class DisorderedArray<T> {
18
18
  */
19
19
  deleteByIndex(index: number): T;
20
20
  forEach(callbackFn: (element: T) => void, swapFn: (element: T, index: number) => void): void;
21
- forEachAndClean(callbackFn: (e: T) => void): void;
21
+ forEachAndClean(callbackFn: (e: T) => void, swapFn: (element: T, index: number) => void): void;
22
22
  sort(compareFn: (a: T, b: T) => number): void;
23
23
  garbageCollection(): void;
24
24
  private _startLoop;
25
25
  private _endLoop;
26
- private _endLoopAndClear;
26
+ private _endLoopAndClean;
27
27
  }
package/types/Engine.d.ts CHANGED
@@ -7,6 +7,7 @@ import { ResourceManager } from "./asset/ResourceManager";
7
7
  import { EventDispatcher, Time } from "./base";
8
8
  import { ColorSpace } from "./enums/ColorSpace";
9
9
  import { InputManager } from "./input";
10
+ import { ParticleBufferUtils } from "./particle/ParticleBufferUtils";
10
11
  import { PhysicsScene } from "./physics/PhysicsScene";
11
12
  import { XRManager } from "./xr/XRManager";
12
13
  /**
@@ -17,6 +18,7 @@ export declare class Engine extends EventDispatcher {
17
18
  readonly inputManager: InputManager;
18
19
  /** XR manager of Engine. */
19
20
  readonly xrManager: XRManager;
21
+ _particleBufferUtils: ParticleBufferUtils;
20
22
  private _settings;
21
23
  private _resourceManager;
22
24
  private _sceneManager;
@@ -117,6 +119,7 @@ export declare class Engine extends EventDispatcher {
117
119
  destroy(): void;
118
120
  private _createSpriteMaterial;
119
121
  private _createSpriteMaskMaterial;
122
+ private _createTextMaterial;
120
123
  private _onDeviceLost;
121
124
  private _onDeviceRestored;
122
125
  private _gc;
@@ -2,7 +2,7 @@ import { Camera } from "../Camera";
2
2
  import { CameraClearFlags } from "../enums/CameraClearFlags";
3
3
  import { TextureCubeFace } from "../texture";
4
4
  import { RenderContext } from "./RenderContext";
5
- import { RenderData } from "./RenderData";
5
+ import { RenderElement } from "./RenderElement";
6
6
  /**
7
7
  * Basic render pipeline.
8
8
  */
@@ -34,11 +34,17 @@ export declare class BasicRenderPipeline {
34
34
  /**
35
35
  * Push render data to render queue.
36
36
  * @param context - Render context
37
- * @param data - Render data
37
+ * @param renderElement - Render element
38
38
  */
39
- pushRenderData(context: RenderContext, data: RenderData): void;
40
- private pushRenderDataWithShader;
39
+ pushRenderElement(context: RenderContext, renderElement: RenderElement): void;
40
+ private pushRenderElementByType;
41
41
  private _drawBackgroundTexture;
42
42
  private _prepareRender;
43
- private _updateMVPShaderData;
43
+ }
44
+ export declare enum RenderQueueFlags {
45
+ None = 0,
46
+ Opaque = 1,
47
+ AlphaTest = 2,
48
+ Transparent = 4,
49
+ All = 7
44
50
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ import { Primitive, SubMesh } from "../graphic";
2
+ import { Material } from "../material/Material";
3
+ import { Renderer } from "../Renderer";
4
+ import { Texture2D } from "../texture";
5
+ import { IPoolElement } from "../utils/Pool";
6
+ import { Chunk } from "./DynamicGeometryData";
7
+ import { RenderData } from "./RenderData";
8
+ export declare class RenderData2D extends RenderData implements IPoolElement {
9
+ texture: Texture2D;
10
+ chunk: Chunk;
11
+ constructor();
12
+ set(component: Renderer, material: Material, primitive: Primitive, subPrimitive: SubMesh, texture?: Texture2D, chunk?: Chunk): void;
13
+ dispose(): void;
14
+ }
@@ -1,9 +1,12 @@
1
- import { ShaderPass } from "../shader/ShaderPass";
2
- import { IPoolElement } from "./IPoolElement";
3
- import { RenderData } from "./RenderData";
1
+ import { IPoolElement } from "../utils/ObjectPool";
2
+ import { RenderQueueFlags } from "./BasicRenderPipeline";
3
+ import { SubRenderElement } from "./SubRenderElement";
4
4
  export declare class RenderElement implements IPoolElement {
5
- data: RenderData;
6
- shaderPasses: ReadonlyArray<ShaderPass>;
7
- set(data: RenderData, shaderPasses: ReadonlyArray<ShaderPass>): void;
5
+ priority: number;
6
+ distanceForSort: number;
7
+ subRenderElements: SubRenderElement[];
8
+ renderQueueFlags: RenderQueueFlags;
9
+ set(priority: number, distanceForSort: number): void;
10
+ addSubRenderElement(element: SubRenderElement): void;
8
11
  dispose(): void;
9
12
  }
@@ -1,30 +1 @@
1
- import { Camera } from "../Camera";
2
- import { Engine } from "../Engine";
3
- import { RenderQueueType } from "../shader";
4
- import { RenderElement } from "./RenderElement";
5
- /**
6
- * Render queue.
7
- */
8
- export declare class RenderQueue {
9
- readonly elements: RenderElement[];
10
- private _spriteBatcher;
11
- private readonly _renderQueueType;
12
- constructor(engine: Engine, renderQueueType: RenderQueueType);
13
- /**
14
- * Push a render element.
15
- */
16
- pushRenderElement(element: RenderElement): void;
17
- render(camera: Camera, pipelineStageTagValue: string): void;
18
- /**
19
- * Clear collection.
20
- */
21
- clear(): void;
22
- /**
23
- * Destroy internal resources.
24
- */
25
- destroy(): void;
26
- /**
27
- * Sort the elements.
28
- */
29
- sort(compareFunc: Function): void;
30
- }
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,22 @@
1
+ import { Renderer } from "../Renderer";
2
+ import { Primitive, SubMesh } from "../graphic";
3
+ import { Material } from "../material";
4
+ import { ShaderData, ShaderPass } from "../shader";
5
+ import { Texture2D } from "../texture";
6
+ import { IPoolElement } from "../utils/ObjectPool";
7
+ import { RenderQueueFlags } from "./BasicRenderPipeline";
8
+ import { SubPrimitiveChunk } from "./SubPrimitiveChunk";
9
+ export declare class SubRenderElement implements IPoolElement {
10
+ component: Renderer;
11
+ primitive: Primitive;
12
+ material: Material;
13
+ subPrimitive: SubMesh;
14
+ shaderPasses: ReadonlyArray<ShaderPass>;
15
+ shaderData?: ShaderData;
16
+ batched: boolean;
17
+ renderQueueFlags: RenderQueueFlags;
18
+ texture?: Texture2D;
19
+ subChunk?: SubPrimitiveChunk;
20
+ set(component: Renderer, material: Material, primitive: Primitive, subPrimitive: SubMesh, texture?: Texture2D, subChunk?: SubPrimitiveChunk): void;
21
+ dispose(): void;
22
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Force upload shader data flag.
3
+ */
4
+ export declare enum ForceUploadShaderDataFlag {
5
+ /** Upload nothing. */
6
+ None = 0,
7
+ /** Upload scene shader data. */
8
+ Scene = 1,
9
+ /** Upload camera shader data. */
10
+ Camera = 2,
11
+ /** Upload renderer shader data. */
12
+ Renderer = 4,
13
+ /** Upload material shader data. */
14
+ Material = 8
15
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * RenderData usage.
3
+ */
4
+ export declare enum RenderDataUsage {
5
+ /** Usage for mesh. */
6
+ Mesh = 0,
7
+ /** Usage for sprite. */
8
+ Sprite = 1,
9
+ /** Usage for sprite mask. */
10
+ SpriteMask = 2,
11
+ /** Usage for text. */
12
+ Text = 3
13
+ }
@@ -22,6 +22,7 @@ export declare class Renderer extends Component implements IComponentCustomClone
22
22
  protected _overrideUpdate: boolean;
23
23
  protected _materials: Material[];
24
24
  protected _dirtyUpdateFlag: number;
25
+ protected _rendererLayer: Vector4;
25
26
  private _shaderData;
26
27
  private _mvMatrix;
27
28
  private _mvpMatrix;
@@ -30,7 +31,6 @@ export declare class Renderer extends Component implements IComponentCustomClone
30
31
  private _materialsInstanced;
31
32
  private _priority;
32
33
  private _receiveShadows;
33
- protected _rendererLayer: Vector4;
34
34
  /**
35
35
  * ShaderData related to renderer.
36
36
  */
@@ -111,7 +111,8 @@ export declare class Renderer extends Component implements IComponentCustomClone
111
111
  */
112
112
  setMaterials(materials: Material[]): void;
113
113
  update(deltaTime: number): void;
114
- protected _updateTransformShaderData(context: RenderContext, worldMatrix: Matrix): void;
115
- protected _updateMVPShaderData(context: RenderContext, worldMatrix: Matrix): void;
114
+ protected _updateRendererShaderData(context: RenderContext): void;
115
+ protected _updateWorldViewRelatedShaderData(context: RenderContext, worldMatrix: Matrix, batched: boolean): void;
116
+ protected _updateProjectionRelatedShaderData(context: RenderContext, worldMatrix: Matrix, batched: boolean): void;
116
117
  private _setMaterial;
117
118
  }
package/types/Scene.d.ts CHANGED
@@ -47,6 +47,7 @@ export declare class Scene extends EngineObject {
47
47
  private _fogParams;
48
48
  private _isActive;
49
49
  private _sun;
50
+ private _enableTransparentShadow;
50
51
  /**
51
52
  * Whether the scene is active.
52
53
  */
@@ -114,6 +115,11 @@ export declare class Scene extends EngineObject {
114
115
  */
115
116
  get sun(): DirectLight | null;
116
117
  set sun(light: DirectLight | null);
118
+ /**
119
+ * Whether to enable transparent shadow.
120
+ */
121
+ get enableTransparentShadow(): boolean;
122
+ set enableTransparentShadow(value: boolean);
117
123
  /**
118
124
  * Create scene.
119
125
  * @param engine - Engine
@@ -1,6 +1,8 @@
1
1
  import { BoolUpdateFlag } from "../BoolUpdateFlag";
2
2
  import { Component } from "../Component";
3
3
  import { AnimatorController } from "./AnimatorController";
4
+ import { AnimatorControllerLayer } from "./AnimatorControllerLayer";
5
+ import { AnimatorControllerParameter } from "./AnimatorControllerParameter";
4
6
  import { AnimatorState } from "./AnimatorState";
5
7
  import { AnimatorCullingMode } from "./enums/AnimatorCullingMode";
6
8
  /**
@@ -24,6 +26,14 @@ export declare class Animator extends Component {
24
26
  */
25
27
  get animatorController(): AnimatorController;
26
28
  set animatorController(animatorController: AnimatorController);
29
+ /**
30
+ * The layers in the animator's controller.
31
+ */
32
+ get layers(): Readonly<AnimatorControllerLayer[]>;
33
+ /**
34
+ * The parameters in the animator's controller.
35
+ */
36
+ get parameters(): Readonly<AnimatorControllerParameter[]>;
27
37
  /**
28
38
  * Play a state by name.
29
39
  * @param stateName - The state name
@@ -55,6 +65,16 @@ export declare class Animator extends Component {
55
65
  * @param layerIndex - The layer index(default -1). If layer is -1, find the first state with the given state name
56
66
  */
57
67
  findAnimatorState(stateName: string, layerIndex?: number): AnimatorState;
68
+ /**
69
+ * Get the layer by name.
70
+ * @param name - The layer's name.
71
+ */
72
+ findLayerByName(name: string): AnimatorControllerLayer;
73
+ /**
74
+ * Get the parameter by name from animatorController.
75
+ * @param name - The name of the parameter
76
+ */
77
+ getParameter(name: string): AnimatorControllerParameter;
58
78
  private _getAnimatorStateInfo;
59
79
  private _getAnimatorStateData;
60
80
  private _saveAnimatorStateData;
@@ -68,22 +88,31 @@ export declare class Animator extends Component {
68
88
  private _prepareDestCrossData;
69
89
  private _getAnimatorLayerData;
70
90
  private _updateLayer;
91
+ private _updateState;
71
92
  private _updatePlayingState;
72
- private _updateCrossFade;
73
- private _updateCrossFadeFromPose;
93
+ private _evaluatePlayingState;
94
+ private _updateCrossFadeState;
95
+ private _evaluateCrossFadeState;
96
+ private _updateCrossFadeFromPoseState;
97
+ private _evaluateCrossFadeFromPoseState;
74
98
  private _updateFinishedState;
99
+ private _evaluateFinishedState;
75
100
  private _updateCrossFadeData;
76
- private _preparePlay;
77
- private _checkTransition;
101
+ private _preparePlayOwner;
102
+ private _applyStateTransitions;
78
103
  private _checkSubTransition;
79
104
  private _checkBackwardsSubTransition;
80
- private _crossFadeByTransition;
105
+ private _applyTransitionsByCondition;
106
+ private _preparePlay;
107
+ private _applyTransition;
108
+ private _checkConditions;
109
+ private _prepareCrossFadeByTransition;
81
110
  private _fireAnimationEvents;
82
111
  private _fireSubAnimationEvents;
83
112
  private _fireBackwardSubAnimationEvents;
84
113
  private _callAnimatorScriptOnEnter;
85
114
  private _callAnimatorScriptOnUpdate;
86
115
  private _callAnimatorScriptOnExit;
87
- private _checkAutoPlay;
116
+ private _checkAnyAndEntryState;
88
117
  private _checkRevertOwner;
89
118
  }
@@ -0,0 +1,13 @@
1
+ import { AnimatorControllerParameterValueType } from "./AnimatorControllerParameter";
2
+ import { AnimatorConditionMode } from "./enums/AnimatorConditionMode";
3
+ /**
4
+ * Condition that is used to determine if a transition must be taken.
5
+ */
6
+ export declare class AnimatorCondition {
7
+ /** The mode of the condition. */
8
+ mode: AnimatorConditionMode;
9
+ /** The name of the parameter used in the condition. */
10
+ parameterName: string;
11
+ /** The AnimatorParameter's threshold value for the condition to be true. */
12
+ threshold?: AnimatorControllerParameterValueType;
13
+ }
@@ -1,15 +1,45 @@
1
+ import { AnimatorControllerParameter, AnimatorControllerParameterValueType } from "./AnimatorControllerParameter";
1
2
  import { AnimatorControllerLayer } from "./AnimatorControllerLayer";
2
3
  /**
3
4
  * Store the data for Animator playback.
4
5
  */
5
6
  export declare class AnimatorController {
6
7
  private _updateFlagManager;
7
- private _layers;
8
- private _layersMap;
9
8
  /**
10
9
  * The layers in the controller.
11
10
  */
12
11
  get layers(): Readonly<AnimatorControllerLayer[]>;
12
+ /**
13
+ * The parameters in the controller.
14
+ */
15
+ get parameters(): Readonly<AnimatorControllerParameter[]>;
16
+ /**
17
+ * Add a parameter to the controller.
18
+ * @param name - The name of the parameter
19
+ * @param value - The value of the parameter
20
+ */
21
+ addParameter(name: string, value?: AnimatorControllerParameterValueType): AnimatorControllerParameter;
22
+ /**
23
+ * Add a parameter to the controller.
24
+ * @param parameter - The parameter
25
+ */
26
+ addParameter(parameter: AnimatorControllerParameter): AnimatorControllerParameter;
27
+ /**
28
+ * Remove a parameter from the controller.
29
+ * @param parameter - The parameter
30
+ */
31
+ removeParameter(parameter: AnimatorControllerParameter): void;
32
+ /**
33
+ * Get the parameter by name.
34
+ * @param name - The name of the parameter
35
+ */
36
+ getParameter(name: string): AnimatorControllerParameter;
37
+ /**
38
+ * Set the value of the given parameter.
39
+ * @param name - The name of the parameter
40
+ * @param value - The value of the parameter
41
+ */
42
+ setParameterValue(name: string, value: AnimatorControllerParameterValueType): void;
13
43
  /**
14
44
  * Get the layer by name.
15
45
  * @param name - The layer's name.
@@ -0,0 +1,10 @@
1
+ export type AnimatorControllerParameterValueType = number | string | boolean;
2
+ /**
3
+ * Used to communicate between scripting and the controller, parameters can be set in scripting and used by the controller.
4
+ */
5
+ export declare class AnimatorControllerParameter {
6
+ /** The name of the parameter. */
7
+ name: string;
8
+ /** The value of the parameter. */
9
+ value: AnimatorControllerParameterValueType;
10
+ }
@@ -1,5 +1,5 @@
1
1
  import { AnimationClip } from "./AnimationClip";
2
- import { AnimatorStateTransition } from "./AnimatorTransition";
2
+ import { AnimatorStateTransition } from "./AnimatorStateTransition";
3
3
  import { WrapMode } from "./enums/WrapMode";
4
4
  import { StateMachineScript } from "./StateMachineScript";
5
5
  /**
@@ -25,12 +25,12 @@ export declare class AnimatorState {
25
25
  get clip(): AnimationClip;
26
26
  set clip(clip: AnimationClip);
27
27
  /**
28
- * The start time of the clip, the range is 0 to 1, default is 0.
28
+ * The normalized start time of the clip, the range is 0 to 1, default is 0.
29
29
  */
30
30
  get clipStartTime(): number;
31
31
  set clipStartTime(time: number);
32
32
  /**
33
- * The end time of the clip, the range is 0 to 1, default is 1.
33
+ * The normalized end time of the clip, the range is 0 to 1, default is 1.
34
34
  */
35
35
  get clipEndTime(): number;
36
36
  set clipEndTime(time: number);
@@ -39,10 +39,20 @@ export declare class AnimatorState {
39
39
  */
40
40
  constructor(name: string);
41
41
  /**
42
- * Add an outgoing transition to the destination state.
42
+ * Add an outgoing transition.
43
43
  * @param transition - The transition
44
44
  */
45
- addTransition(transition: AnimatorStateTransition): void;
45
+ addTransition(transition: AnimatorStateTransition): AnimatorStateTransition;
46
+ /**
47
+ * Add an outgoing transition to the destination state.
48
+ * @param animatorState - The destination state
49
+ */
50
+ addTransition(animatorState: AnimatorState): AnimatorStateTransition;
51
+ /**
52
+ * Add an outgoing transition to exit of the stateMachine.
53
+ * @param exitTime - The time at which the transition can take effect. This is represented in normalized time.
54
+ */
55
+ addExitTransition(exitTime?: number): AnimatorStateTransition;
46
56
  /**
47
57
  * Remove a transition from the state.
48
58
  * @param transition - The transition
@@ -1,4 +1,5 @@
1
1
  import { AnimatorState } from "./AnimatorState";
2
+ import { AnimatorStateTransition } from "./AnimatorStateTransition";
2
3
  export interface AnimatorStateMap {
3
4
  [key: string]: AnimatorState;
4
5
  }
@@ -13,6 +14,17 @@ export declare class AnimatorStateMachine {
13
14
  * @remarks When the Animator's AnimatorController changed or the Animator's onEnable be triggered.
14
15
  */
15
16
  defaultState: AnimatorState;
17
+ private _entryTransitions;
18
+ private _anyStateTransitions;
19
+ private _statesMap;
20
+ /**
21
+ * The list of entry transitions in the state machine.
22
+ */
23
+ get entryTransitions(): Readonly<AnimatorStateTransition[]>;
24
+ /**
25
+ * The list of AnyState transitions.
26
+ */
27
+ get anyStateTransitions(): Readonly<AnimatorStateTransition[]>;
16
28
  /**
17
29
  * Add a state to the state machine.
18
30
  * @param name - The name of the new state
@@ -34,4 +46,36 @@ export declare class AnimatorStateMachine {
34
46
  * @returns Unique name.
35
47
  */
36
48
  makeUniqueStateName(name: string): string;
49
+ /**
50
+ * Add an entry transition.
51
+ * @param transition - The transition
52
+ */
53
+ addEntryStateTransition(transition: AnimatorStateTransition): AnimatorStateTransition;
54
+ /**
55
+ * Add an entry transition to the destination state.
56
+ * @param animatorState - The destination state
57
+ */
58
+ addEntryStateTransition(animatorState: AnimatorState): AnimatorStateTransition;
59
+ /**
60
+ * Remove an entry transition.
61
+ * @param transition - The transition
62
+ */
63
+ removeEntryStateTransition(transition: AnimatorStateTransition): void;
64
+ /**
65
+ * Add an any transition.
66
+ * @param transition - The transition
67
+ */
68
+ addAnyStateTransition(transition: AnimatorStateTransition): AnimatorStateTransition;
69
+ /**
70
+ * Add an any transition to the destination state.
71
+ * @param animatorState - The destination state
72
+ */
73
+ addAnyStateTransition(animatorState: AnimatorState): AnimatorStateTransition;
74
+ /**
75
+ * Remove an any transition.
76
+ * @param transition - The transition
77
+ */
78
+ removeAnyStateTransition(transition: AnimatorStateTransition): void;
79
+ private _addTransition;
80
+ private _removeTransition;
37
81
  }