Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

项目介绍

一款第三人称生存射击游戏,玩家需在限定场景内抵御多波次僵尸攻击。项目最初为纯蓝图实现,目前正处于向 UE C++ 主导逻辑 + 蓝图负责动画/UI表现 重构的过程中,用于系统学习 UE 的 C++ 开发模式与架构设计。


原蓝图功能(已完成)

  • 击败所有波次僵尸或收集全部金币的获胜机制
  • 基于 AI 行为树 + 黑板的僵尸 AI:巡逻、发现玩家、追击攻击、丢失目标后恢复巡逻
  • 组件化子弹发射与僵尸攻击效果
  • UI 系统:攻击反馈、生命值显示、暂停、重新开始

蓝图项目视频展示:【UE5第三人称射击游戏demo】 https://www.bilibili.com/video/BV143vkBUEuA/?share_source=copy_web&vd_source=ba531f148b5f8bcfa3358c819ee7120d

拾取系统重构结果展示: 【拾取系统的迭代】 https://www.bilibili.com/video/BV1R3Gm6WE3b/?share_source=copy_web&vd_source=ba531f148b5f8bcfa3358c819ee7120d


C++ 重构进度与新增功能

拾取系统重构(学习接口与事件绑定)

阶段 内容 学习点
阶段1 C++ 实现拾取函数,玩家过滤保留在蓝图 C++ 与蓝图的通信方式
阶段2 物理通道过滤敌人 + 逻辑过滤迁入 C++ 碰撞通道配置、C++ 条件判断
阶段3 拾取金币绑定 C++ 回调,蓝图不再手动接线 动态委托绑定
阶段4 拾取功能通过 Interface 统一实现 UE 接口系统、多态与解耦设计

新增可拾取物接口系统:弹药包、医疗包,均通过同一接口接入系统。

金币旋转优化(学习性能取舍)

方案 实现方式 问题/取舍
方案一 Tick 内每帧计算与玩家距离 性能开销大,N 个金币同时 Tick 不现实
方案二(采用) Overlap 事件动态开启/关闭 Tick 仅在玩家接近时激活计算,兼顾效果与性能

组件结构理解

  • 将金币栏由引擎自动生成组件改为手动创建并调整层级
  • 碰撞体设为Root Component,理解父子组件对变换的影响

当前状态

🚧 重构进行中,C++ 核心逻辑持续替换原蓝图实现,同时保持游戏可运行。后续计划逐步迁移 AI 决策与波次管理至 C++。


About

第三人称射击并收集金币

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages