动态加载类LoadClass 打包后资源缺失 的解决方案

2024-03-13 01:52

本文主要是介绍动态加载类LoadClass 打包后资源缺失 的解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.出现错误

献上代码,在我自己的PlayerController里。加载继承了我C++类的Widget

void AMyPlayerController::BeginPlay()
{Super::BeginPlay();FString WidgetClassLoadPath = FString(TEXT("/Script/UMGEditor.WidgetBlueprint'/Game/GameUI/UMG_Widget.UMG_Widget_C'"));UClass* widgetClass = LoadClass<UUserWidget>(NULL,*WidgetClassLoadPath); //动态加载UUserWidget* MyWidgetClss = nullptr;if (widgetClass){MyWidgetClss = CreateWidget<UUserWidget>(GetWorld(), widgetClass); //创建UUserWidgetif (MyWidgetClss){MyWidgetClss->AddToViewport();}else{GEngine->AddOnScreenDebugMessage(-1,5.0f,FColor::Red,TEXT("d"));}}else{GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, TEXT("c"));}}

为什么这个代码,编译时正常加载,打包后一直打印c。如果不写if判断一下空指针,在编译状态下好好的。然后在打包好,就会崩溃。而网上这种动态加载类的方式,很常见。先加载UClass,在用CreateWidget<T>,创建你自己的widget类。

二.分析原因

写法肯定是没有问题的。说明指针空了,而且打包以后空了。后来查过相关资料,发现打包只会将蓝图引用过的资源打进去。怪不得,但我按网上查的做法,都没有解决。

主要思路,就是在打包的时候,将想要多打的文件夹打进去。

三.解决方案

1.Packaging Settings(也可以在ProjectSetting里找)

2.好多,都说用其他的。但用to Cook 我这个项目的问题,才解决。

试过下面这种,并没有解决。上面这个可以,实现动态加载,多打包的资源。

这篇关于动态加载类LoadClass 打包后资源缺失 的解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/803291

相关文章

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi