# Pong 游戏敌人系统使用说明 本文档介绍如何在游戏中设置敌人系统,使敌人从上方和下方进入游戏区域,随机移动并攻击墙体,而方块中的武器会自动射出子弹攻击最近的敌人。 ## 系统组件 1. **GameStartup** - 游戏初始化脚本,负责设置场景和初始化各个控制器 2. **EnemyController** - 管理敌人的生成、移动和攻击,以及单个敌人行为 3. **BulletController** - 控制子弹寻找并攻击最近的敌人 4. **WeaponController** - 控制武器发射子弹(如果有) ## 设置步骤 ### 1. 添加脚本到项目 确保以下脚本已添加到项目中: - `GameStartup.ts`(已更新,整合了SceneSetup功能) - `EnemyController.ts`(已更新,整合了EnemyManager功能) - `BulletController.ts`(已更新) ### 2. 设置节点结构 1. 确保场景中有以下节点结构: ``` Canvas ├── GameManager └── GameLevelUI ├── BallController ├── BlockController ├── EnemyController ├── WeaponController ├── enemyContainer ├── GameArea │ ├── TopFence │ ├── BottomFence │ ├── JiguangL │ └── JiguangR └── HeartNode (墙体血量显示) ``` ### 3. 设置GameStartup 1. 在Canvas节点上添加GameStartup组件 2. 设置WallHealth属性(默认为1200) 3. 拖拽GameManager节点到GameManager属性 ### 4. 设置EnemyController节点 1. 确保场景中存在Canvas/GameLevelUI/EnemyController节点 - 如不存在,GameStartup会自动创建 2. 在EnemyController节点上添加EnemyController组件 3. 设置以下属性: - EnemyPrefab: 拖拽Enemy预制体到这里 - SpawnInterval: 3(或根据需要调整) - EnemySpeed: 50 - AttackPower: 10 - Health: 30 - WallHealth: 1200(会被GameStartup覆盖) ### 5. 设置BallController 1. 在Canvas/GameLevelUI/BallController节点上添加BallController组件 2. 设置以下属性: - BulletPrefab: 拖拽Bullet预制体到这里 - BulletCooldown: 0.5(或根据需要调整) ### 6. 设置Bullet预制体 1. 打开Bullet预制体 2. 添加BulletController组件 3. 设置以下属性: - Speed: 300 - Damage: 10 - Lifetime: 5 ## 游戏流程 1. 玩家放置方块并点击确认按钮 2. GameManager启动游戏,生成小球并启动敌人生成 3. 敌人从上方和下方进入游戏区域,随机左右移动 4. 小球撞击方块后,方块发射子弹 5. 子弹自动寻找并攻击最近的敌人 6. 敌人到达墙体后会攻击墙体,造成伤害 7. 当墙体血量降为0时,游戏结束 ## 优化说明 本系统采用了节点控制器模式,主要优点: 1. **脚本整合**: - 将SceneSetup整合到GameStartup中 - 将EnemyManager和EnemyController整合为一个脚本 - 减少了脚本文件数量,简化了代码结构 2. **节点管理**: - 使用专门的控制器节点管理各类游戏对象 - 预制体只保留基础组件,复杂逻辑由控制器处理 - 便于调试和管理 ## 调试提示 - 在控制台中查看日志信息,了解敌人生成、移动和攻击情况 - 可以调整EnemyController中的参数来改变敌人生成频率、移动速度和攻击力 - 可以调整BulletController中的参数来改变子弹速度和伤害 ## 注意事项 - 确保所有预制体都有正确的物理碰撞组件 - 确保GameArea中有正确命名的墙体节点(TopFence、BottomFence、JiguangL、JiguangR) - 如果游戏性能有问题,可以调整敌人生成频率或同时存在的敌人数量