Unreal ImGui 使用指南

Unreal ImGui 使用指南

UnrealImGui Unreal plug-in that integrates Dear ImGui framework into Unreal Engine 4/5. UnrealImGui 项目地址: https://gitcode.com/gh_mirrors/unr/UnrealImGui

1. 项目介绍

Unreal ImGui 是一个针对 Unreal Engine 4/5 的插件,它将 Dear ImGui 框架集成到虚幻引擎中。Dear ImGui 是一个轻量级且易于使用的即时模式图形用户界面库,非常适合在开发过程中创建调试工具。

本项目是基于 Omar Cornut 开发的 Dear ImGui 库,并通过 UnrealImGui 插件使其能够在 Unreal Engine 中使用。插件支持 Unreal Engine 的多个版本,包括 4.27、5.0、5.1、5.2、5.3 和 5.4,以及可能的未来版本。

2. 项目快速启动

以下是在 Unreal Engine 项目中集成 Unreal ImGui 插件的步骤:

首先,将以下代码添加到你的虚幻项目中的合适位置:

// 例子:初始化一个 UTextureRenderTarget2D 并注册到 ImGui
void Init()
{
    TextureRenderTarget = NewObject<UTextureRenderTarget2D>();
    if (IsValid(TextureRenderTarget))
    {
        TextureRenderTarget->InitAutoFormat(512, 512);
        TextureRenderTarget->UpdateResourceImmediate(true);
    }

    // ...生成一个唯一的 TextureName...

    ImGuiTextureHandle = FImGuiModule::Get().FindTextureHandle(TextureName);
    if (!ImGuiTextureHandle.IsValid() && IsValid(TextureRenderTarget))
    {
        ImGuiTextureHandle = FImGuiModule::Get().RegisterTexture(TextureName, TextureRenderTarget, true);
    }
}

// 在渲染函数中绘制纹理
void Render()
{
    if (ImGuiTextureHandle.IsValid())
    {
        ImGui::Image(ImGuiTextureHandle.GetTextureId(), ImVec2(512.f, 512.f));
    }
}

// 析构函数中释放资源
~Class()
{
    if (IsValid(TextureRenderTarget))
    {
        FImGuiModule::Get().ReleaseTexture(ImGuiTextureHandle);
    }
}

确保在虚幻引擎中创建并配置好 ASceneCapture2D 演员,以便将渲染目标绑定到 ImGui 窗口。

3. 应用案例和最佳实践

使用 ImPlot

ImPlot 是一个基于 ImGui 的图表库,可以很容易地集成到 UnrealImGui 中。使用 ImPlot 的方式与使用 ImGui 类似。官方文档提供了详细的使用指南。

绘制 UTextureRenderTarget2D

您可能需要在 ImGui 窗口中渲染场景捕获的内容。为此,您可以创建一个 UTextureRenderTarget2D,并将其关联到 ASceneCapture2D 演员。

添加自定义字体

例如,要将 FontAwesome 字体集成到字体集中,您需要获取 FontAwesome 字体的二进制 C 版本及其描述符,然后按照以下步骤操作:

#include "FontAwesomeFont.h"
#include "IconsFontAwesome6.h"

// 添加 FontAwesome 字体字形到内存
if (TSharedPtr<ImFontConfig> FAFontConfig = MakeShareable(new ImFontConfig()))
{
    static const ImWchar IconRange[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
    FAFontConfig->FontDataOwnedByAtlas = false;
    FAFontConfig->FontData = (void*)FontAwesomeData;
    FAFontConfig->FontDataSize = FontAwesomeSize;
    FAFontConfig->SizePixels = /* 指定字体大小 */;
    // ...其他配置...
}

4. 典型生态项目

Unreal ImGui 作为一个插件,可以与 Unreal Engine 的其他开源项目配合使用,例如:

  • 使用 ImGui 创建游戏内调试工具。
  • 集成 ImPlot 用于实时数据可视化。
  • 利用 ImGui 提供的图表库进行性能监控。

通过上述介绍,您可以开始使用 Unreal ImGui 来丰富您的虚幻引擎项目,并探索更多可能性。

UnrealImGui Unreal plug-in that integrates Dear ImGui framework into Unreal Engine 4/5. UnrealImGui 项目地址: https://gitcode.com/gh_mirrors/unr/UnrealImGui

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏廷章Berta

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值