开发工具

概述

开发工具模块提供作弊管理器和本地开发者设置,方便在开发阶段快速调试和测试。

核心类

URogueCheatManager

文件: Source/ActionRoguelike/Development/RogueCheatManager.h/.cpp

自定义作弊管理器,通过控制台命令触发。在 ARoguePlayerController 中配置为 CheatClass

Exec 命令

  • HealSelf - 完全恢复自身生命值(ApplyAttributeChange 设置 Health 为 HealthMax)
  • KillAll - 杀死所有指定类的 AI 角色(默认 ARogueAICharacter
  • DeleteSaveGame - 删除指定槽位的存档文件

使用方式: 在游戏运行时打开控制台(~ 键)输入命令名即可。

URogueDeveloperLocalSettings

文件: Source/ActionRoguelike/Development/RogueDeveloperLocalSettings.h

本地开发者设置,存储在本地 INI 文件中,不提交到版本控制。

配置项

  • bDisableSpawnBotsOverride - 禁用怪物生成(方便测试时不被打扰)

使用方式: 在 DefaultEditorPerProjectUserSettings.ini(本地文件)中配置:

[/Script/ActionRoguelike.RogueDeveloperLocalSettings]
bDisableSpawnBotsOverride=true

设计思想

  • URogueDeveloperSettings(项目级、提交到 VCS)不同
  • 每个开发者可以有自己的偏好设置
  • 不影响其他人的开发环境

CVar 调试工具一览

项目中散布了大量 CVar 控制的调试功能:

CVar模块功能
game.drawdebugattackrangeAI绘制攻击范围调试线
game.drawdebugmeleeAnimation绘制近战检测球体
game.ActorPoolingPerformance控制 Actor 池开关
game.AggregateTicksPerformance控制 Tick 聚合开关
SigMan.SignificanceBucketSizeMultiplierPerformance调整 Significance 桶大小

Unreal Insights 集成

项目使用 TRACE_CPUPROFILER_EVENT_SCOPE 和计数器宏进行性能跟踪:

TRACE_CPUPROFILER_EVENT_SCOPE(CheckAttackRange);  // 函数级 CPU 追踪
TRACE_COUNTER_INCREMENT(ProjectileCount);          // 弹体计数器
TRACE_COUNTER_SET(ActiveCorpses, Count);           // 尸体数量设置

通过 Unreal Insights 工具可以实时观察这些指标。

结构化日志

项目使用 UE_LOGFMT 进行结构化日志输出:

UE_LOGFMT(LogGame, Log, "Actor {Name} killed by {Killer}", ActorName, KillerName);

屏幕调试日志

全局函数 LogOnScreen() 在屏幕上显示带网络角色前缀的调试信息:

LogOnScreen(this, FString::Printf(TEXT("Health: %f"), Health));
// 输出: "[Server] Health: 100.0" 或 "[Client] Health: 100.0"