项目模块方案
第一阶段只建立两个模块:
Source/
├─ StealAnEgg/ # 客户端和 DS 共用的玩法
└─ StealAnEggUI/ # 只用于客户端和编辑器的 UI
依赖方向必须保持:
StealAnEggUI ─────→ StealAnEgg ─────→ UE Runtime Modules
StealAnEgg 不能依赖 StealAnEggUI。这样 DS 可以只编译共享玩法,而不加载 UMG 等客户端 UI。
主玩法模块目录
Source/StealAnEgg/
├─ StealAnEgg.Build.cs
├─ StealAnEgg.h
├─ Core/
├─ GameFramework/
├─ Player/
├─ Inventory/
├─ Items/
├─ Interaction/
├─ Eggs/
├─ Pets/
├─ AI/
├─ World/
│ ├─ SafeZone/
│ ├─ Territories/
│ ├─ Refresh/
│ ├─ PlayerPlots/
│ ├─ Pens/
│ ├─ Treadmills/
│ └─ Shops/
└─ Online/
UI 模块目录
Source/StealAnEggUI/
├─ StealAnEggUI.Build.cs
├─ StealAnEggUI.h
├─ HUD/
├─ Quickbar/
├─ Pen/
├─ Shop/
├─ Frontend/
└─ ViewModels/
上面目录随时有可能变动,不代表最终项目结构。
命名约定
项目统一使用 SAE 作为 C++ 类型前缀的一部分:
| 类型 | 示例 |
|---|---|
| Actor | ASAEEggActor |
| UObject | USAEEggDefinition |
| Struct | FSAEQuickbarSlot |
| Enum | ESAEWorldPhase |
| Interface | ISAEInteractable |
文件名与主要类型一致:
SAEQuickbarComponent.h
SAEQuickbarComponent.cpp
资产命名
| 资产 | 前缀 |
|---|---|
| Blueprint | BP_ |
| Widget Blueprint | WBP_ |
| Data Asset | DA_ |
| Data Table | DT_ |
| Animation Blueprint | ABP_ |
| Behavior Tree | BT_ |
| Blackboard | BB_ |
| Material | M_ |
| Material Instance | MI_ |
| Texture | T_ |
C++ 与 Blueprint 的边界
C++ 负责:
- 网络权威规则。
- 状态机。
- 快捷栏和物品事务。
- 拾蛋、掉落和安全区结算。
- 世界刷新。
- 持久化数据转换。
- 可复用组件和基础类。
Blueprint 负责:
- 具体动物和宠物资产组合。
- 动画、音效和特效。
- 关卡槽位配置。
- Widget 布局。
- 低风险表现逻辑。
- 基于 C++ 接口的内容配置。
不要只在 Blueprint 中实现决定金币、出售、孵化结果或蛋归属的逻辑。

Discussion
留言讨论
发表留言时,评论服务会记录必要的 IP 与 User-Agent 信息,用于安全审核和防止滥用。