wiki更新
This commit is contained in:
@@ -2,16 +2,22 @@
|
||||
|
||||
<cite>
|
||||
**本文档引用文件**
|
||||
- [Mission.ts](file://assets/script/game/common/config/Mission.ts)
|
||||
- [MissionComp.ts](file://assets/script/game/map/MissionComp.ts)
|
||||
- [VictoryComp.ts](file://assets/script/game/map/VictoryComp.ts)
|
||||
- [GameEvent.ts](file://assets/script/game/common/config/GameEvent.ts)
|
||||
- [GameUIConfig.ts](file://assets/script/game/common/config/GameUIConfig.ts)
|
||||
- [MissionMonComp.ts](file://assets/script/game/map/MissionMonComp.ts)
|
||||
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts)
|
||||
- [Design.md](file://assets/script/Design.md)
|
||||
- [Mission.ts](file://assets/script/game/common/config/Mission.ts) - *奖励常量配置*
|
||||
- [MissionComp.ts](file://assets/script/game/map/MissionComp.ts) - *奖励数据管理与实体销毁逻辑*
|
||||
- [VictoryComp.ts](file://assets/script/game/map/VictoryComp.ts) - *奖励界面展示*
|
||||
- [GameEvent.ts](file://assets/script/game/common/config/GameEvent.ts) - *事件定义*
|
||||
- [MissionMonComp.ts](file://assets/script/game/map/MissionMonComp.ts) - *怪物生成与事件处理*
|
||||
- [RogueConfig.ts](file://assets/script/game/map/RogueConfig.ts) - *肉鸽关卡配置*
|
||||
- [Design.md](file://assets/script/Design.md) - *系统设计概述*
|
||||
</cite>
|
||||
|
||||
## 更新摘要
|
||||
**变更内容**
|
||||
- 更新了`MissionComp`中实体销毁逻辑,修复空引用问题
|
||||
- 修正奖励发放流程中组件清理的实现方式
|
||||
- 更新相关章节以反映最新的代码实现
|
||||
- 增强源码追踪信息,标注关键修改点
|
||||
|
||||
## 目录
|
||||
1. [奖励系统概述](#奖励系统概述)
|
||||
2. [三选一奖励机制](#三选一奖励机制)
|
||||
@@ -232,6 +238,31 @@ VictoryComp --> GameEvent : "触发"
|
||||
- [GameEvent.ts](file://assets/script/game/common/config/GameEvent.ts#L43)
|
||||
- [GameUIConfig.ts](file://assets/script/game/common/config/GameUIConfig.ts#L30)
|
||||
|
||||
### 实体销毁逻辑优化
|
||||
|
||||
根据最新代码变更,`MissionComp`中的`cleanComponents`方法已优化,修复了实体销毁时可能出现的空引用问题。新的实现直接销毁实体,让ECS系统自动处理组件清理,避免在组件`reset`方法中访问已被销毁的实体引用。
|
||||
|
||||
```typescript
|
||||
private cleanComponents() {
|
||||
// 优化销毁顺序:直接销毁实体,让ECS系统自动处理组件清理
|
||||
// 这样可以避免在组件reset方法中访问已经被销毁的实体引用
|
||||
ecs.query(ecs.allOf(HeroViewComp)).forEach(entity => {
|
||||
entity.destroy();
|
||||
});
|
||||
ecs.query(ecs.allOf(AtkConCom)).forEach(entity => {
|
||||
entity.destroy();
|
||||
});
|
||||
ecs.query(ecs.allOf(SkillViewCom)).forEach(entity => {
|
||||
entity.destroy();
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
此变更确保了在战斗结束后的清理过程中,不会因组件访问已被销毁的实体而导致运行时错误,提高了系统的稳定性。
|
||||
|
||||
**Section sources**
|
||||
- [MissionComp.ts](file://assets/script/game/map/MissionComp.ts#L137-L149) - *修复实体销毁空引用问题*
|
||||
|
||||
## 扩展新奖励类型
|
||||
|
||||
### 配置修改步骤
|
||||
|
||||
Reference in New Issue
Block a user