mirror of
https://github.com/galacean/engine.git
synced 2026-06-03 09:14:01 +08:00
Fix animation sholud reset when reenabled (#2252)
* fix: animation sholud reset when reenabled
This commit is contained in:
38
e2e/case/animator-play-beforeActive.ts
Normal file
38
e2e/case/animator-play-beforeActive.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @title Animation Play
|
||||
* @category Animation
|
||||
*/
|
||||
import { Animator, Camera, DirectLight, GLTFResource, Logger, Vector3, WebGLEngine } from "@galacean/engine";
|
||||
import { OrbitControl } from "@galacean/engine-toolkit";
|
||||
import { initScreenshot, updateForE2E } from "./.mockForE2E";
|
||||
|
||||
Logger.enable();
|
||||
WebGLEngine.create({ canvas: "canvas" }).then((engine) => {
|
||||
engine.canvas.resizeByClientSize(2);
|
||||
const scene = engine.sceneManager.activeScene;
|
||||
const rootEntity = scene.createRootEntity();
|
||||
|
||||
// camera
|
||||
const cameraEntity = rootEntity.createChild("camera_node");
|
||||
cameraEntity.transform.position = new Vector3(0, 1, 5);
|
||||
const camera = cameraEntity.addComponent(Camera);
|
||||
cameraEntity.addComponent(OrbitControl).target = new Vector3(0, 1, 0);
|
||||
|
||||
const lightNode = rootEntity.createChild("light_node");
|
||||
lightNode.addComponent(DirectLight).intensity = 0.6;
|
||||
lightNode.transform.lookAt(new Vector3(0, 0, 1));
|
||||
lightNode.transform.rotate(new Vector3(0, 90, 0));
|
||||
rootEntity.isActive = false;
|
||||
engine.resourceManager
|
||||
.load<GLTFResource>("https://gw.alipayobjects.com/os/bmw-prod/5e3c1e4e-496e-45f8-8e05-f89f2bd5e4a4.glb")
|
||||
.then((gltfResource) => {
|
||||
const { defaultSceneRoot } = gltfResource;
|
||||
rootEntity.addChild(defaultSceneRoot);
|
||||
const animator = defaultSceneRoot.getComponent(Animator);
|
||||
animator.play("agree");
|
||||
rootEntity.isActive = true;
|
||||
updateForE2E(engine);
|
||||
|
||||
initScreenshot(engine, camera);
|
||||
});
|
||||
});
|
||||
@@ -45,6 +45,11 @@ export const E2E_CONFIG = {
|
||||
caseFileName: "animator-play",
|
||||
threshold: 0.1
|
||||
},
|
||||
playBeforeActive: {
|
||||
category: "Animator",
|
||||
caseFileName: "animator-play-beforeActive",
|
||||
threshold: 0.1
|
||||
},
|
||||
reuse: {
|
||||
category: "Animator",
|
||||
caseFileName: "animator-reuse",
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5aef10b73cf93151962a6b972cf315082ba5b15f6a8c739bfadb01631e8d8b3c
|
||||
size 47230
|
||||
@@ -227,10 +227,7 @@ export class Animator extends Component {
|
||||
* @internal
|
||||
*/
|
||||
override _onEnable(): void {
|
||||
const layersData = this._animatorLayersData;
|
||||
for (let i = 0, n = layersData.length; i < n; i++) {
|
||||
layersData[i].layerState = LayerState.Standby;
|
||||
}
|
||||
this._reset();
|
||||
this._entity.getComponentsIncludeChildren(Renderer, this._controlledRenderers);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user