From 47575ca0b85f8740158c60e05d5007623738e9cf Mon Sep 17 00:00:00 2001 From: walkpan Date: Tue, 6 Jan 2026 14:48:42 +0800 Subject: [PATCH] =?UTF-8?q?fix(skill):=20=E5=BB=B6=E8=BF=9F=E9=94=80?= =?UTF-8?q?=E6=AF=81=E6=8A=80=E8=83=BD=E5=AE=9E=E4=BD=93=E4=BB=A5=E9=81=BF?= =?UTF-8?q?=E5=85=8D=E7=89=A9=E7=90=86=E5=9B=9E=E8=B0=83=E4=B8=AD=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E9=94=80=E6=AF=81=E5=88=9A=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复在物理回调中直接销毁刚体可能导致的问题,改为使用scheduleOnce延迟到下一帧销毁 --- assets/script/game/skill/SkillView.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/assets/script/game/skill/SkillView.ts b/assets/script/game/skill/SkillView.ts index 37093cb1..799b6bfc 100644 --- a/assets/script/game/skill/SkillView.ts +++ b/assets/script/game/skill/SkillView.ts @@ -177,7 +177,12 @@ export class SkillView extends CCComp { (this.SConf.EType != EType.animationEnd) && (this.SConf.EType != EType.timeEnd) ) { - this.ent.destroy(); // 技能命中次数达到上限后销毁 + // 修复:物理回调中不能直接销毁刚体,需延迟到下一帧 + this.scheduleOnce(() => { + if (this.ent) { + this.ent.destroy(); + } + }, 0); } } /** 视图对象通过 ecs.Entity.remove(ModuleViewComp) 删除组件是触发组件处理自定义释放逻辑 */