refactor(3d-situational-awareness): **更新动画行为至末端停止并调整设备速度**
将计时范围从 `LOOP_STOP` 更改为 `CLAMPED`,以防止动画循环。 同时将设备实体的速度乘数提高 1.5 倍,以实现更快的移动。 添加动画持续时间详情的日志记录。
This commit is contained in:
parent
08096350cb
commit
dc4c88acb5
@ -120,7 +120,7 @@ export function useEntityAnimation() {
|
||||
viewer.clock.startTime = startTime.clone()
|
||||
viewer.clock.stopTime = stopTime.clone()
|
||||
viewer.clock.currentTime = startTime.clone()
|
||||
viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP // 动画结束后停止
|
||||
viewer.clock.clockRange = Cesium.ClockRange.CLAMPED // 动画到达终点后停止,不循环
|
||||
viewer.clock.multiplier = 1 // 实时速度
|
||||
viewer.clock.shouldAnimate = true
|
||||
|
||||
@ -385,7 +385,7 @@ export function useEntityAnimation() {
|
||||
viewer.clock.startTime = startTime.clone()
|
||||
viewer.clock.stopTime = stopTime.clone()
|
||||
viewer.clock.currentTime = startTime.clone()
|
||||
viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP
|
||||
viewer.clock.clockRange = Cesium.ClockRange.CLAMPED // 动画到达终点后停止,不循环
|
||||
viewer.clock.multiplier = 1
|
||||
viewer.clock.shouldAnimate = true
|
||||
|
||||
@ -470,7 +470,12 @@ export function useEntityAnimation() {
|
||||
})
|
||||
|
||||
// 计算动画时长(使用速度倍数)
|
||||
const speedMultiplier = options.speedMultiplier || 10
|
||||
// 装备移动速度更快(speedMultiplier 更大 = 动画时间更短 = 移动更快)
|
||||
const baseSpeedMultiplier = options.speedMultiplier || 10
|
||||
const speedMultiplier = route.type === 'equipment'
|
||||
? baseSpeedMultiplier * 1.5 // 装备速度是人员的1.5倍
|
||||
: baseSpeedMultiplier // 人员保持原速
|
||||
|
||||
const animationDuration = Math.min(
|
||||
Math.max(route.duration / speedMultiplier, 30), // 最小30秒
|
||||
120 // 最大120秒
|
||||
@ -510,6 +515,14 @@ export function useEntityAnimation() {
|
||||
const icon = route.type === 'equipment' ? deviceIcon : soldierIcon
|
||||
const trailColor = route.type === 'equipment' ? Cesium.Color.ORANGE : Cesium.Color.CYAN
|
||||
|
||||
// 日志输出:显示每个实体的动画时长
|
||||
console.log(
|
||||
`[useEntityAnimation] ${route.name} (${route.type}): ` +
|
||||
`原始时长=${Math.round(route.duration)}秒, ` +
|
||||
`速度倍数=${speedMultiplier.toFixed(1)}, ` +
|
||||
`动画时长=${Math.round(animationDuration)}秒`
|
||||
)
|
||||
|
||||
// 创建动画实体
|
||||
return viewer.entities.add({
|
||||
availability: new Cesium.TimeIntervalCollection([
|
||||
@ -584,7 +597,7 @@ export function useEntityAnimation() {
|
||||
viewer.clock.startTime = startTime.clone()
|
||||
viewer.clock.stopTime = stopTime.clone()
|
||||
viewer.clock.currentTime = startTime.clone()
|
||||
viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP
|
||||
viewer.clock.clockRange = Cesium.ClockRange.CLAMPED // 动画到达终点后停止,不循环
|
||||
viewer.clock.multiplier = 1
|
||||
viewer.clock.shouldAnimate = true
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user