fix: 修复英雄销毁和任务开始时的残留问题

在Hero.ts中增加销毁节点的逻辑,防止视觉残留
在MissionComp.ts中清理回调函数和组件,避免上一局残留影响新局
This commit is contained in:
walkpan
2026-01-03 09:17:53 +08:00
parent a758d48914
commit c94255cc02
2 changed files with 11 additions and 0 deletions

View File

@@ -29,6 +29,12 @@ export class Hero extends ecs.Entity {
}
destroy(): void {
// 销毁节点,防止视觉残留
const view = this.get(HeroViewComp);
if (view && view.node && view.node.isValid) {
view.node.destroy();
}
this.remove(HeroViewComp);
this.remove(HeroAttrsComp);
this.remove(HeroSkillsComp);

View File

@@ -84,6 +84,11 @@ export class MissionComp extends CCComp {
async mission_start(){
// 防止上一局的 fight_end 延迟回调干扰新局
this.unscheduleAllCallbacks();
// 确保清理上一局的残留实体
this.cleanComponents();
// console.log("[MissionComp] ** 1 ** mission_start")
oops.message.dispatchEvent(GameEvent.FightReady)
this.node.active=true