fix(skill): 修复技能碰撞检测逻辑和组件初始化问题
- 在Skill.ts中确保节点激活并添加SkillView组件缺失的错误处理 - 修复SkillView中碰撞体启用/禁用逻辑,避免同一帧内重复触发伤害 - 增加pendingDisableCollider标志防止异步操作中的竞争条件 - 完善组件重置逻辑,正确清理事件监听和定时器 - 修复动画事件监听可能重复绑定的问题
This commit is contained in:
@@ -99,11 +99,17 @@ export class Skill extends ecs.Entity {
|
||||
}
|
||||
|
||||
node.parent = skillParent;
|
||||
node.active = true;
|
||||
// 设置节点属性
|
||||
let face=caster.node.scale.x < 0 ? -1 : 1
|
||||
node.setScale(v3(node.scale.x*face,node.scale.y,1))
|
||||
// 初始视图
|
||||
const SView = node.getComponent(SkillView);
|
||||
const SView = node.getComponent(SkillView);
|
||||
if (!SView) {
|
||||
mLogger.error(this.debugMode, 'Skill', "[Skill] SkillView 组件缺失:", path);
|
||||
if (node.isValid) node.destroy();
|
||||
return;
|
||||
}
|
||||
if(config.EType!=EType.collision){
|
||||
const collider=node.getComponent(BoxCollider2D);
|
||||
if(collider){
|
||||
@@ -163,6 +169,7 @@ export class Skill extends ecs.Entity {
|
||||
sDataCom.s_uuid=s_uuid
|
||||
sDataCom.fac=cAttrsComp.fac
|
||||
sDataCom.ext_dmg=ext_dmg
|
||||
SView.init();
|
||||
}
|
||||
|
||||
/** 模块资源释放 */
|
||||
|
||||
Reference in New Issue
Block a user