自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 UE4+C++开发-(一百零一篇)-C++如何声明一个动态多播委托(供C++和蓝图绑定)?

摘要: UE4/UE5中的动态多播委托(DynamicMulticastDelegate)支持C++与蓝图双向通信,需通过宏(如DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam)声明,并搭配UPROPERTY(BlueprintAssignable)标记成员变量。关键步骤: 声明:定义委托类型及参数; 绑定/解绑:使用AddDynamic绑定UFUNCTION标记的成员函数,RemoveDynamic避免悬空引用; 触发:通过Broadcast()调用所有绑定函数; 限

2025-09-08 16:02:04 297

原创 UE4+C++开发-(九十九)-C++根据一个文件夹结构,生成对应的TreeView

本文介绍了一种通过递归遍历文件夹结构生成树形UI节点的实现方案。核心步骤包括:1) 新增递归遍历函数将文件夹转换为树形节点数据;2) 修改初始化方法从指定文件夹路径生成根节点;3) 保持原有UI生成逻辑自动适配文件夹层级显示。该方案支持多级文件夹自动映射为树形节点,通过节点的深度属性实现缩进显示,并可扩展添加图标、过滤文件夹等功能。使用时只需替换目标文件夹路径,TreeView即可自动显示完整的文件夹层级结构,保留原有的展开/折叠交互功能。

2025-09-07 17:29:25 501

原创 UE4+C++开发-(九十八)-Slate 与 UMG 的区别?

摘要:Slate是UE4纯C++底层UI框架,核心类SCompoundWidget不继承UObject,无反射支持但性能高。UMG框架的UUserWidget继承UObject,支持蓝图但性能较低。两者区别在于Slate直接管理渲染,UMG依赖反射系统。可通过UUserWidget子类桥接将Slate控件集成到UMG中,实现高性能定制UI与蓝图系统的结合。(135字)

2025-09-07 16:55:24 478

原创 UE4+C++开发-(九十三)-UMG界面的BeginPlay和销毁?

Unreal Engine UI生命周期管理摘要 该代码片段展示了Unreal Engine中UI控件的生命周期管理,重点处理委托绑定与解绑。NativeConstruct()在UI初始化时被调用,用于绑定委托,需先检查MapLoaderManager是否有效;NativeDestruct()在UI销毁时调用,必须解绑委托以防止Widget销毁后仍被回调导致崩溃。两个方法都需调用父类方法(Super::),体现了良好的继承实践。这种模式确保了UI控件在创建和销毁时的资源管理安全,是UE4/UE5开发中处理委

2025-09-06 17:47:45 255

原创 UE4+C++开发-(八十七)UMGWidget 可见性变化时输出日志,并在显示时执行初始化操作,隐藏时执行清理操作?

本文介绍了在Unreal Engine中如何重写UMG Widget的OnVisibilityChanged方法。通过继承UUserWidget并重写该方法,可以监听Widget的可见性变化:当变为Visible状态时输出日志并初始化UI内容,当变为Hidden状态时执行清理操作。文章提供了完整代码示例,包括头文件和实现文件,展示了如何获取子控件并更新显示内容,同时强调了调用父类实现的重要性。常用可见性状态包括Visible、Hidden和Collapsed,可通过SetVisibility()触发该函数。

2025-09-05 19:49:15 454

原创 UE4+C++开发-(八十六)UMG界面有没有像unity一样的生命周期函数Start,OnEnable等?

Unreal Engine的UMG框架通过UserWidget类提供与Unity类似的生命周期函数:Construct()用于初始化(类似Start),OnVisibilityChanged()处理显示/隐藏(类似OnEnable/Disable),Tick()实现帧更新(需手动开启),Destruct()用于销毁清理。关键区别在于UMG更关注可见性而非激活状态,且初始化顺序分为Construct和OnInitialized两个阶段。开发者可通过蓝图事件图表直接调用这些生命周期函数,实现界面从创建到销毁的全

2025-09-05 19:26:43 548

原创 UE4+C++开发-(八十五)-完成版-UE怎么判读场景加载完毕?以及回调给UMG界面进行下一步动作?

文章摘要:本文提出了三种解决场景加载回调问题的方案:1)使用可靠的中间层PersistentUI进行委托转发;2)修改MapLoaderManager类,添加场景加载完成回调功能;3)在UMG界面实现场景加载的事件监听机制,包括界面存储、委托绑定和回调处理。这些方法通过建立可靠的委托机制,确保场景异步加载完成后能正确触发回调事件。

2025-09-04 22:09:16 372

原创 UE4+C++开发-(八十三)-UE怎么判读场景加载完毕?以及回调给UMG界面进行下一步动作?

本文介绍了在UnrealEngine中判断场景加载完成并回调UMG界面的实现方法。主要通过异步加载机制结合委托方式,详细说明了C++和蓝图两种实现路径:C++使用UWorld::LoadLevelInstanceBySoftObjectPtr和委托监听,蓝图则通过LoadLevelInstanceAsync节点。同时阐述了UMG界面的回调处理方式,包括在蓝图中定义回调函数和C++调用UMG函数的方法。最后强调了异步加载的线程安全、StreamingLevel特殊处理以及错误处理等关键注意事项,为场景加载后的

2025-09-04 21:47:44 422

原创 UE4+C++开发-(八十二)-ListView第5篇-取得某一行的列表数据Data?

摘要:该代码片段展示了在UE4中实现列表项选择功能的核心逻辑。通过绑定按钮(BTN_Train)的点击事件(OnBTNTrainClicked),从ListView(LV_TrainList)获取选中项数据。主要步骤包括:验证ListView有效性、获取选中项数组、检查选中状态、类型转换处理以及最终使用数据(如输出选中列车名称和ID)。代码采用了UE4.27推荐的数组接收方式,并包含完善的错误处理机制,确保能正确获取并处理用户选择的列表行数据。

2025-09-03 21:53:56 246

原创 UE4+C++开发-(八十)-ListView第3篇单例模式制作一个ListView列表高亮管理器ListViewHighlightManager?

本文介绍了在Unreal Engine中实现列表项图片显示控制的方法:1)初始加载和动态生成时自动隐藏所有图片;2)点击某一行时显示该行图片并隐藏其他行。通过绑定列表项的点击事件,调用单例管理器处理高亮逻辑,实现点击交互功能。代码展示了在NativeConstruct中绑定事件,以及在点击回调中调用管理器接口的过程,同时提供了取消高亮的注释示例。

2025-09-03 21:44:24 286

原创 UE4+C++开发-(七十九)-C++中的&和*的区别详解?

C++中&和*运算符的区别与使用指南:&是取地址运算符,用于获取变量地址或声明引用;*是解引用运算符,用于访问指针指向的值或声明指针。引用必须初始化且不能重新绑定,更安全;指针可为空且灵活,支持动态内存管理。实际开发中,优先使用引用保证安全性,仅在需要动态内存、可选参数等场景使用指针。智能指针和const引用是现代C++推荐做法。

2025-09-02 09:14:46 459

原创 UE4+C++开发-(七十八)-要在 xxxPlayerController 中获取到 LoginWidget(登录 UI 组件)

要在中获取到(登录 UI 组件),可以通过以下几种方式实现,具体取决于你的 UI 管理逻辑和UMGManager。

2025-09-02 06:43:51 222

原创 UE4+C++开发-(七十八)-创建一个全局状态管理类第2篇-GlobalStateManager-给系统SystemWidget调用,处理返回逻辑?

本文介绍了如何使用UGlobalStateManager全局状态管理器进行界面管理和用户信息存储。内容包括:1)通过SetCurrentActiveUI方法设置当前活跃界面,传入EActiveUI枚举值;2)调用GetCurrentActiveUIName获取界面名称,使用GetCurrentActiveUIEnum获取枚举类型进行switch判断;3)用户登录后使用SetCurrentUser方法存储用户ID和用户名。文中提供了代码示例和枚举值使用说明,演示了如何安全获取管理器实例并执行相关操作。

2025-09-01 18:41:28 160

原创 UE4+C++开发-(七十七)-创建一个全局状态管理类第1篇-GlobalStateManager来记录应用程序的各种全局状态,包括当前登录的用户信息、当前活跃界面等?

本文介绍了在Unreal Engine中使用C++实现全局状态管理类的方法。该方案通过单例模式创建GlobalStateManager类,用于统一管理应用程序的全局状态,包括用户登录信息和当前活跃界面等。类中定义了EActiveUI枚举来标识不同界面,并提供了蓝图可调用的方法进行状态设置和查询。实现要点包括:静态实例初始化、状态数据存储、枚举与字符串转换,以及通过AddToRoot()防止被垃圾回收。该管理器可扩展更多全局状态和事件通知功能,适用于C++和蓝图调用场景。

2025-09-01 18:33:54 325

原创 UE4+C++开发-(七十六)-用C++代码动态创建一个ListView列表?动态实现列表视图功能。

摘要:本文详细介绍了在UE4.27中使用C++动态实现UMG列表视图功能的方法。通过创建数据类(UTrainListItemData)、列表项控件类(UTrainListItemWidget)和主界面类(USingleTrainUI),实现了完整的列表数据绑定和动态更新功能。关键步骤包括:1)创建数据模型存储列车信息;2)设计列表项UI控件;3)实现主界面管理列表数据;4)通过按钮事件动态添加/清空列表项。该方法支持数据动态更新、滚动控制和事件绑定,为复杂UI交互提供了基础框架。

2025-09-01 14:45:16 592

原创 UE4+C++开发-(七十五)-用C++代码动态创建一个ListView列表?

本文介绍了在UE4.27中动态生成列表视图(ListView)的实现方法。主要内容包括:1)定义继承UObject的数据类存储列表项信息;2)创建列表项UI样式的UserWidget蓝图;3)在Widget蓝图或C++类中动态生成数据并绑定到ListView控件;4)提供动态更新列表的方法。重点说明了数据类的定义、UI绑定、C++实现示例以及动态添加/删除项的注意事项,强调数据类必须继承UObject且EntryClass需为UserWidget蓝图。

2025-09-01 14:42:12 814

原创 UE4+C++开发-(七十四)-要想两个界面都可以点击,怎么改?

要让多个UI界面同时可点击,需修改输入模式和UI层级管理。核心是改用FInputModeGameAndUI输入模式(替代FInputModeUIOnly),允许所有UI接收输入并移除独占焦点设置。同时为每个UI指定不同的ZOrder层级(数值越大越靠上),确保点击事件能穿透到下层UI。还需检查各UI控件的IsFocusable属性为true,并避免重叠区域相互遮挡。通过这种方案,DaoHangUI和SystemUI等界面将能同时响应点击,实现多界面交互功能。

2025-08-30 11:38:50 416

原创 UE4+C++开发-(七十三)-游戏实例、UI 管理器与玩家控制器协同三者协同关系概述?

该文章描述了基于Unreal Engine的项目UI管理架构设计,包含三个核心组件:UMyGameInstance(全局生命周期管理)、UUMGManager(UI操控工具类)和APlayerController(交互桥梁)。三者形成协同工作流:游戏启动时初始化管理器,玩家控制器通过GameInstance获取管理器实例,所有UI操作通过控制器调用管理器实现。文章详细展示了UI加载的核心流程、输入模式设置和资源管理代码,并提出了输入恢复、异步加载等优化建议。该架构通过分层职责划分,实现了集中式UI管理,同时

2025-08-30 10:23:44 312

原创 UE4+C++开发-(七十二)-UUMGManager、UMyGameInstance、PlayerController怎么调用?

本文详细介绍了如何通过UUMGManager实现UI加载与输入模式管理,包括C++和蓝图两种调用方式。核心步骤为:1)在GameInstance中初始化UUMGManager单例;2)通过LoadAndShowWidget加载UI并自动设置输入模式;3)使用HideWidget关闭UI并恢复游戏输入。文章提供了PlayerController、GameMode等多种场景的调用示例,并强调了路径校验、PlayerController有效性检查等注意事项。通过这套方案,开发者可以方便地实现UI交互与游戏控制的无

2025-08-30 09:40:47 574

原创 UE4+C++开发-(七十一)-UUMGManager、UMyGameInstance、PlayerController都能实现 UMG 界面加载, “哪个更好”?

如果 UI 是 “全局的、跨关卡不消失”→ 用「UMyGameInstance + UUMGManager」(中大型项目)或直接用「UMyGameInstance」(小型项目);如果 UI 是 “玩家专属的、随玩家生死 / 切换消失”→ 用「PlayerController」;如果 UI 逻辑多、需要统一管理(如弹窗队列、层级控制)→ 必须加「UUMGManager」,避免逻辑散乱。

2025-08-30 01:02:04 1093

原创 UE4+C++开发-(七十二)-游戏内自带的 “默认模式” vs 你手动修改的游戏实例设置?

文章摘要:本文分析了游戏设置冲突的三种常见场景:1)游戏默认模式与手动修改的冲突,通常仅修改项覆盖默认模式;2)游戏平台默认设置与实例自定义设置的冲突,后者优先级更高;3)系统/硬件默认模式与游戏需求的冲突,可能限制性能表现。排查方法包括重置对比设置和查看系统提示。多数情况下设置可共存,显性冲突会有明确提示。(149字)

2025-08-30 00:44:09 233

原创 UE4+C++开发-(七十一)-默认游戏模式PlayerController 与游戏实例类UMyGameInstance?

在Unreal Engine中,游戏模式(APlayerController所属类)和游戏实例(UMyGameInstance)是互补的核心模块。游戏模式负责场景内逻辑(如玩家控制、AI行为),随场景加载/卸载;而游戏实例管理全局数据(如存档、设置),贯穿整个游戏进程。二者通过GetGameInstance()实现数据交互:PlayerController读取全局设置或保存跨场景数据到GameInstance。需注意正确配置项目默认游戏实例类,并确保游戏模式与场景的关联。二者分工明确,协作实现完整游戏功能,

2025-08-30 00:41:17 867

原创 UE4+C++开发-(七十)-窗口怎么最小化?

该代码片段展示了在UE4.27中处理窗口最小化按钮点击的功能。通过SlateApplication接口获取当前活动的主窗口,并调用Minimize()方法实现窗口最小化。代码提供了两种获取主窗口的方式:一是通过GetActiveTopLevelWindow()获取活动顶层窗口,二是从窗口列表中获取第一个窗口作为备选方案。当确认窗口有效后,执行最小化操作。这段代码适用于需要自定义窗口管理功能的UE4应用开发场景。

2025-08-29 20:28:26 108

原创 UE4+C++开发-(六十九)-场景管理器第7篇-终极解决方案-场景地图加载后,系统菜单SystemWidget怎么防止丢失?

本文介绍了一个基于Unreal Engine的持久化UI系统实现方案。通过继承UGameInstance创建UPersistentUI类,该系统能够在场景切换时保持UI元素不被销毁。关键实现包括:重写Init和Shutdown方法绑定场景加载事件、使用AddToRoot防止垃圾回收、通过Viewport控制UI显示层级。使用时需将类设置为项目默认GameInstance,并通过GetGameInstance获取实例调用Show/Hide方法。该系统自动处理场景切换时的UI移除和重新添加,适用于全局菜单和加载

2025-08-29 00:57:08 482

原创 UE4+C++开发-(六十八)-场景管理器第6篇-场景加载后,系统菜单SystemWidget怎么防止丢失?

本文介绍了三种在场景切换时保留SystemWidget的解决方案:1)推荐将SystemWidget绑定到全局UGameInstance对象,通过AddToRoot防止被GC销毁;2)在新场景加载后重建SystemWidget;3)使用无缝加载技术临时隐藏再恢复UI。文章还指出了常见误区,如未调用AddToRoot、引用未清理和蓝图路径错误等问题。这三种方案可根据是否需要保留Widget状态进行选择,确保SystemWidget在场景切换时不会丢失。

2025-08-28 00:26:06 678

原创 UE4+C++开发-(六十七)-场景管理器第5篇-为什么加载场景后,系统菜单SystemWidget会丢失?

在UE4中加载场景导致SystemWidget丢失的原因是场景加载机制会完全替换当前场景资源,包括UI控件。由于UI控件的生命周期默认与当前场景绑定,当场景被销毁时,SystemWidget也会被清除。解决方案需处理UI控件与场景的绑定关系,确保其跨场景存活。

2025-08-28 00:22:18 284

原创 UE4+C++开发-(六十六)-场景管理器第4篇-异步加载地图补充?

摘要:针对UE4.27中地图存在性检查误判问题,分析发现地图资源类型应为UWorld而非ULevel,且资源引用格式需遵循"路径.地图名"规范。修复方案包括:1)标准化路径(移除.umap后缀,确保/Game/前缀);2)修正StaticLoadObject检查类型为UWorld;3)采用宽松检查策略(即使检查失败仍尝试加载);4)修正资源引用格式为"路径.地图名"。该方案解决了原生函数能加载但StaticLoadObject误判的问题,同时保持与引擎原生加载逻辑的兼

2025-08-27 23:09:28 546

原创 UE4+C++开发-(六十五)-场景管理器第2篇-C++方式和蓝图方式调用?

本文介绍了在UE4.27中调用改造后的MapLoaderManager单例的方法。通过GetInstance()获取全局唯一实例后,可直接调用原有的地图加载接口,包括同步、异步和无缝加载等功能。详细说明了C++和蓝图两种调用方式:C++中需包含头文件后获取单例调用接口;蓝图中需添加UFUNCTION标记并通过静态函数获取实例。改造后的单例系统保持原有功能不变,仅增加获取实例步骤,支持多线程安全调用,需注意地图路径格式和错误检查。该方案实现了业务代码无缝适配,简化了地图加载管理。

2025-08-27 20:58:10 1044

原创 UE4+C++开发-(六十五)-场景管理器第1篇-单例模式MapLoaderManager

调用方式核心特点:“单例获取 + 原有接口调用”,改造后仅多了一步 “通过GetInstance()拿实例”,其余参数、逻辑、返回值与改造前完全一致,无需修改原有业务代码,直接适配即可。完整格式:"/Game/Maps/Level_01" 或 "/Game/Maps/Level_01.umap" → 直接使用,不额外处理。// 或用完整路径:MapLoader->LoadMapSync("/Game/Maps/Level_01");// 2. 调用同步加载接口(参数:地图名,支持“地图名”或“完整路径”)

2025-08-27 20:18:21 1033

原创 UE4+C++开发-(六十四)-UI管理器第7篇-怎么防止一个 UMG界面在不必要的时候出现?-终极解决方案

本文介绍了APlayerController类中BeginPlay方法的实现逻辑。该方法首先初始化单例实例,确保只有一个控制器实例存在。然后通过获取当前关卡名称并处理后缀路径,判断是否处于登录关卡。如果是登录关卡则继续执行后续UI加载逻辑,否则直接返回不执行加载操作。代码中包含了详细的日志输出,便于调试和跟踪执行流程。

2025-08-27 01:21:43 88

原创 UE4+C++开发-(六十三)-UI管理器第6篇(场景1:在 UMG 界面中调用(如按钮点击))-UI管理器,将PlayerController制作成一个单例-去打开另一个UMG界面?

摘要: 该代码实现了一个基于单例模式的PlayerController类,用于管理游戏UI界面。核心功能包括:1) 通过GetInstance()获取全局唯一实例;2) 使用UMGManager管理UI的加载和显示;3) 提供OpenNewWidget(叠加显示)和SwitchToWidget(切换显示)两种UI操作方式;4) 支持编辑器配置初始加载UI路径。代码通过TWeakObjectPtr确保单例内存安全,并在BeginPlay/EndPlay中处理初始化和清理逻辑。UI控件可通过简单调用单例方法来切

2025-08-25 15:31:43 322

原创 UE4+C++开发-(六十二)-UE_Log打印中文乱码问题

在电脑控制面板下面主要。

2025-08-25 10:32:37 398

原创 UE4+C++开发-(六十一)-UI管理器第5篇(场景 3:在玩家控制器内部调用)-UI管理器,怎么调用,打开另一个UMG界面?

本文介绍了在玩家控制器内部调用UMGManager实现UI自动加载的方法。通过定时器检测玩家分数达到100分时,使用SwitchToWidget切换至奖励界面(WBP_RewardUI)。关键点包括:1)在BeginPlay中初始化UMGManager和定时器;2)CheckConditionAndOpenRewardUI方法检测条件并加载UI;3)使用正确的蓝图路径格式。该方法适合与游戏状态(如分数、任务)相关的UI管理,无需跨类引用,直接在控制器内部完成UI调用。文中提供了完整代码示例,包括定时器设置、

2025-08-24 23:57:57 386

原创 UE4+C++开发-(六十)-UI管理器第4篇(场景2:在其他 Actor 中调用(如拾取物、NPC))-UI管理器,怎么调用,打开另一个UMG界面?

这段代码展示了在Unreal Engine中实现玩家交互时打开新界面的方法。通过获取玩家控制器,定义UMG界面路径,提供了两种界面切换方式:一种是叠加显示新界面(OpenNewWidget),另一种是替换当前界面(SwitchToWidget)。代码包含错误处理,当无法获取控制器时会记录错误日志。开发者需要将示例路径替换为自己的实际UMG路径来使用该功能。

2025-08-24 23:53:18 382

原创 UE4+C++开发-(五十九)-UI管理器第3篇(场景1:在 UMG 界面中调用(如按钮点击))-UI管理器,怎么调用,打开另一个UMG界面?

该代码实现了UE4游戏中的UI管理系统,主要功能包括: 在PlayerController中创建UMG管理器,支持自动加载初始UI界面 提供OpenNewWidget方法打开新界面而不关闭现有界面 提供SwitchToWidget方法先关闭所有现有界面再打开新界面 通过蓝图可调用函数暴露给UI层使用 在LoginWidget按钮点击事件中调用切换界面功能 代码结构清晰,包含完整的错误处理和日志记录功能。

2025-08-24 23:50:04 360

原创 UE4+C++开发-(五十八)-UI管理器第2篇-通过C++动态打开UMG界面-“傻瓜式” 配置流程

本文介绍了在Unreal Engine项目中配置UMG界面的完整步骤。主要包含:1)整理项目文件结构;2)修改Build.cs文件添加UMG模块依赖;3)生成VS项目文件并编译;4)创建自定义游戏模式蓝图并设置玩家控制器;5)创建测试UMG界面并配置自动加载路径;6)通过复制引用获取正确路径;7)测试运行验证结果。重点强调了Build.cs配置、路径获取和蓝图关联等关键步骤,确保UMG界面能正确加载显示。

2025-08-24 22:59:49 491

原创 UE4+C++开发-(五十六)UE4项目中引入第三方C++的.DLL第13篇-调用dll中的多个类?

文章摘要:该工程配置了第三方库路径为ThirdParty/include,并保持其他库文件位置不变。代码示例展示了如何调用MyDLLClass中的AddStringNumber方法进行加法运算,将结果转换为字符串后,通过Unreal Engine的GEngine显示在屏幕上,包括设置文本颜色、显示时长和字体大小等参数。最终实现了将计算结果(示例1+6=7)以红色文本显示在游戏界面的功能。

2025-08-24 10:27:52 310

原创 UE4+C++开发-(五十五)UE中UMG的Parent Class(父类)

UE的UMG系统中,ParentClass(父类)是构建UI层级和实现逻辑复用的核心机制。所有UMG控件和蓝图通过继承父类的属性、函数和事件,形成清晰的层级结构,提升开发效率。常见父类包括官方C++基类(如UWidget、UUserWidget)和自定义蓝图父类(如基础面板BP_BasePanel)。开发者可通过创建子类蓝图继承父类,直接使用父类控件和逻辑,同时支持重写事件和属性。最佳实践建议保持3层以内的继承层级,区分通用与个性化逻辑,合理设置变量权限,并善用接口实现功能扩展。合理运用ParentClas

2025-08-24 08:35:35 611

原创 UE4+C++开发-(五十四)开发者自定义的 “Setting 类”(UMG 配置管理)-UE中UMG中的class Setting

摘要:Unreal Engine的UMG系统中没有内置的"Setting"类,但开发者可通过两种方式管理UI设置:一是利用UMG自带的UI控件属性(如可见性、布局、交互等),二是自定义Setting类(蓝图或C++实现)来集中管理游戏设置与UI的交互。自定义Setting类能解耦UI逻辑与数据存储,支持保存/加载配置,并通过事件机制实现设置变更的实时响应。开发时需注意性能优化,避免频繁更新UI,同时可利用事件广播实现设置预览功能。

2025-08-23 22:22:48 812

原创 UE4+C++开发-(五十三)UE4项目中引入第三方C++的.DLL第12篇-模块规则文件(.Build.cs)-第6篇-将第三方预编译库文件(.lib)添加到当前模块的公共链接库列表中

这段代码用于将第三方库文件MyDll.lib添加到Unreal引擎模块的公共链接库列表中。核心功能是确保编译时正确链接该库,使模块能使用库中功能。代码解析了路径拼接方法,并强调需注意平台兼容性(不同系统使用不同库格式)、路径有效性检查以及与动态库的配套处理。特别指出PublicAdditionalLibraries与PrivateAdditionalLibraries的区别,前者会将依赖传递给其他模块,后者则仅限于当前模块使用。最后建议在集成Windows第三方库时要综合考虑库类型、跨平台支持和运行时依赖等

2025-08-23 22:05:37 905

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除