From 3103d0e9915a43326a328d232bcfdb297dd6038d Mon Sep 17 00:00:00 2001 From: Marius Kaczmarek Date: Wed, 21 Feb 2024 11:40:01 +0100 Subject: [PATCH] added early stopping counter reset (fixed stuck avatar bug) --- .../Babylon/CharacterNavigator/CharacterNavigator.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Components/Core/Presentation/Babylon/CharacterNavigator/CharacterNavigator.ts b/src/Components/Core/Presentation/Babylon/CharacterNavigator/CharacterNavigator.ts index d1435d2c6..2a449fb25 100644 --- a/src/Components/Core/Presentation/Babylon/CharacterNavigator/CharacterNavigator.ts +++ b/src/Components/Core/Presentation/Babylon/CharacterNavigator/CharacterNavigator.ts @@ -40,7 +40,7 @@ export default class CharacterNavigator separationWeight: 1.0, reachRadius: 0.4, // acts as stopping distance }; - private readonly earlyStoppingPatience = 300; // in ms + private readonly earlyStoppingPatience = 400; // in ms private readonly earlyStoppingVelocityThreshold = 0.3; private navigation: INavigation; @@ -100,11 +100,11 @@ export default class CharacterNavigator ); // setup observers - this.targetReachedCallback = onTargetReachedCallback ?? null; this.checkEarlyStoppingObserverRef = this.scenePresenter.Scene.onBeforeRenderObservable.add( this.checkEarlyStopping ); + this.targetReachedCallback = onTargetReachedCallback ?? null; this.targetReachedObserverRef = this.navigation.Crowd.onReachTargetObservable.add( (eventData: { agentIndex: number }) => { @@ -164,6 +164,7 @@ export default class CharacterNavigator if (this.earlyStoppingCounter >= this.earlyStoppingPatience) { if (this.targetReachedCallback) this.targetReachedCallback(); this.stopMovement(); + this.earlyStoppingCounter = 0; } }