日常记录:UE5小白学习常忘问题记录

不断学习,不断更新,有帮助记得点赞和收藏,查缺补漏

1.调用继承与EngineSubsystem的子系统

UMyEngineSubsystem* MyEngineSubsystem = GEngine->GetEngineSubsystem<UMyEngineSubsystem>();

这样获取

2.UE_LOG调用变量字符串

FString temp="temp";
UE_LOG(LogTemp, Warning,TEXT( "%s"), *temp);

3.闪退后错误代码1

闪退后错误代码:
Object(const FObjectInitializer&) constructor called but it’s not the object that’s currently being constructed with NewObject. Maybe you are trying to construct it on the stack, which is not supported.
原因:
在C++脚本中有声明Actor或ActorComponent等对象,初始化错误。
解决:
声明是使用指针 *Actor *ActorComponent

4.UE中1单位为现实中的1厘米,100单位为1米

也就是说 一个物体在scale为(1,1,1)的情况下,坐标为(100,0,0)时,它距离原点(0,0,0)为1米(100厘米)

在这里插入图片描述

5.代码没问题,但编译不成功时

建议:
1.关掉实时代码编写
在这里插入图片描述
2.BUG报告不发送
在这里插入图片描述
3.不要自动保存
在这里插入图片描述

6.动态添加ActorComponent

//创建组件(NewObject,AddInstanceComponent,在【非构造函数】中使用)
UStaticMeshComponent* SMC = NewObject<UStaticMeshComponent>(ActorIN);//NewObject在UE里相当于new关键字
//实际上,NewObject的参数传别的非空指针也行,他只是给new出来的新东西挂一个引用,以保证它不会被UE的GC当成没有引用的垃圾回收掉,并不影响它挂到哪里
SMC->SetStaticMesh(MeshIN);
SMC->RegisterComponent();//这行最关键,没了这行渲染效果就不会显示。看了下源码,大概是在场景里对需要处理的物体做了些注册什么的
ActorIN->AddInstanceComponent(SMC);//不要用其他的几个API,否则要不没效果要不UE会崩

7.延迟执行方法 (Delay)

// LatentInfo, 
	// Param1 : Linkage 默认给0
	// Param2 : UUID 给个独一无二的编码即可  FMath::Rand()  或者给时间戳转Fstring + 类名 也可保证唯一性
	// Param3 : ExecutionFunction 要执行的方法名  用TEXT宏转一下
	// Param4 : CallbackTarget  回调传入的UObject目标 传this
	const FLatentActionInfo LatentInfo(0, FMath::Rand(), TEXT("DelayFinish"), this);
	// Delay  X秒后延迟后执行DelayFinish方法
	UKismetSystemLibrary::Delay(this, 25.0f, LatentInfo);

记得在.h的DelayFinish方法添加

UFUNCTION(BlueprintCallable, Category = “MyCategory”)

8.无法编译,报错提示使用了未定义类型“UAudioComponent”

问题:VS中无报错,UE编辑器无法编译,报错提示使用了未定义类型“UAudioComponent”
解决:添加头文件,这个VS里不提示不报错对于小白来说很无赖,不确定是否需要引用、是否已默认包含引用、引用哪个,还是要多学习

#include "Components/AudioComponent.h"

9.远处物体看不清或有闪烁现象

可以调整屏幕百分比到150、200或更高,有明显的改善
预览窗口可以调整下图位置
预览窗口设置
发现有效果就可以在项目设置里设置,可以在播放窗口看到效果,虽然是在编辑器类别下的,但发布出来亲测有效果播放窗口设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值