Calmer的文章

  • 首页
  • 文章归档
  • 关于页面

  • 搜索
体验游戏 笔记 推荐 工具链 工具使用 小游戏 插件 UI 软件 教程

UE5命令行的扩展

发表于 2023-05-09 | 分类于 游戏开发 | 0 | 阅读次数 1524

前言

在UE5中,命令行被广泛用于许多目的,例如:

  1. 启动游戏:
    命令行可以用来启动UE游戏或模拟器。通过指定命令行参数,可以设置游戏的分辨率、全屏模式、语言、音频设备等。
  2. 调试游戏:
    命令行可以用来调试游戏,例如打印调试信息、记录日志、检查性能等。
  3. 测试游戏:
    命令行可以用来测试游戏,例如运行自动化测试、性能测试、稳定性测试等。
  4. 执行任务:
    命令行可以用来执行不同的任务,例如构建游戏、打包游戏、生成代码等。
  5. 执行脚本:
    命令行可以用来执行脚本,例如Python、Perl、Ruby等脚本,以便处理游戏中的数据、自动化任务等。
  6. 远程管理:
    命令行可以用来远程管理UE5游戏或服务器,例如通过SSH连接到服务器并执行命令,或通过Telnet连接到游戏实例并执行命令。

image.png


扩展方法一

核心代码片段

ICommandManager& CommandManager = IConsoleManager::Get().GetCommandManager();
CommandManager.RegisterConsoleCommand("YourCommand", "Description of your command", YourCommandDelegate);

扩展步骤

  1. 创建新的插件:
    在UE编辑器中,点击左上角的“文件”菜单,然后选择“新建C++类”选项。在C++类创建向导中,选择“插件”并按照向导的指示创建新的插件。

  2. 添加控制台命令:
    在新的插件中,打开“YourPluginName.cpp”文件并添加以下代码:

    void FYourPluginCommands::YourCommandName()
    {
        // Your command code here
    }
    

    上述代码创建了一个名为“YourCommandName”的新命令,并为该命令定义了一些逻辑代码。

  3. 将命令注册到控制台:
    在“YourPluginName.cpp”文件中添加以下代码来将命令注册到控制台:

    void FYourPluginModule::StartupModule()
    {
        // Register console command
        FConsoleCommandDelegate YourCommandDelegate = FConsoleCommandDelegate::CreateStatic(&FYourPluginCommands::YourCommandName);
        ICommandManager& CommandManager = IConsoleManager::Get().GetCommandManager();
        CommandManager.RegisterConsoleCommand("YourCommand", "Description of your command", YourCommandDelegate);
    }
    
    void FYourPluginModule::ShutdownModule()
    {
        // Unregister console command
        ICommandManager& CommandManager = IConsoleManager::Get().GetCommandManager();
        CommandManager.UnregisterConsoleCommand("YourCommand");
    }
    

    上述代码将我们新创建的命令“YourCommandName”注册到控制台,并提供了命令的描述。

  4. 运行命令:
    在UE5编辑器中,按下“~”键以打开控制台。输入“YourCommand”并按下“Enter”键即可运行新创建的命令。

扩展方法二

设置方法为使用Exec

蓝图扩展步骤

  1. 创建BP_GameInstance:GameInstance
    image.png
  2. 设置为项目GameInstance为BP_GameInstance
    image.png
  3. BP_GameInstance创建命令方法
    image.png
  4. 执行TestCmd
    image.png

C++扩展步骤

核心代码片段

bool UInstance::ProcessConsoleExec(const TCHAR* Cmd, FOutputDevice& Ar, UObject* Executor)

UFUNCTION(Exec)
void ExecFunc(FString Cmd); 
  1. 创建MyGameInstance: GameInstance
    .h定义
    image.png
    .cpp定义
    image.png

  2. 设置Project Instance(略)

  3. 执行CppCmd
    image.png

注意:GameInstance必须设置为Project的Instance,否则cmd不会调用

扩展方法三

监听命令行解析
image.png

image.png

核心思路

通过在上述ProcessUserConsoleInput方法中,多播一个委托,在需要监听的代码处注册委托后处理InInput字符串即可,再通过反射等特性,可以快速扩展命令行。
参考代码
声明
image.png
广播
image.png


总结

总之,命令行在UE5中具有广泛的用途,可以为游戏开发人员和工作流程带来很多便利。通过使用命令行,可以轻松实现复杂任务,并快速诊断和解决问题。

扩展:UE5的CommandLets

  • 本文作者: Calmer
  • 本文链接: https://mytechplayer.com/archives/ue5命令行的扩展
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
# 笔记
远程日志工具
模板文件生成流程
  • 文章目录
  • 站点概览
Calmer

Calmer

88 日志
7 分类
10 标签
RSS
Creative Commons
0%
© 2020 — 2025 Calmer
由 Halo 强力驱动
蜀ICP备20010026号-1川公网安备51019002006543
Copyright © 2020-2025 Calmer的文章