【UE】打印、FString、获取某一对象的某类型组件

本文介绍了在Unreal Engine(UE)中如何进行日志打印,包括打印到视口和输出日志,并讨论了FString的使用,如将整数转换为字符串以及字符串拼接。此外,还讲述了如何控制场景中所有光源的开关状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打印日志

  • 打印到视口
    显示效果好,在运行过程中可以在视口左上角看到,但是显示时间有限。
#include "Kismet/KismetSystemLibrary.h"

UKismetSystemLibrary::PrintString(this, "helloworld");
  • 打印到输出日志
    输出日志中才能看到,可以通过关键字查找找到,只要不关掉项目,一直都在。
 int32 num = 12;
 FString string = FString::Printf(TEXT("Num=%d"), num);
 UE_LOG(LogTemp, Warning, TEXT("%s"), *string);
 UE_LOG(LogTemp, Warning, TEXT("Nums=%d"), num);

FString

  • 将int转string
FString::FromInt(int)
  • 字符串+数值拼接
FString p = "Hello";
FString PL = path + "World" + FString::FromInt(520);

控制场景所有光源的开关

int PointNum = 0;
//获取场
### UE5中简单的C++用法或入门教程 以下是关于Unreal Engine 5 (UE5) 中 C++ 编程的一个简单入门教程,涵盖了基本的概念以及如何实现一个自定义的游戏对。 #### 创建自定义Actor类 在 Unreal Engine 的 C++ 开发中,`AActor` 类是最常见的基类之一。通过继承 `AActor`,可以创建具有特定行为和属性的对。例如,在下面的代码片段中展示了如何创建一个名为 `AMyActor` 的 Actor 类: ```cpp #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "MyActor.generated.h" UCLASS() class MYPROJECT_API AMyActor : public AActor { GENERATED_BODY() public: // 构造函数 AMyActor(); protected: // 当游戏开始或组件被激活时调用 virtual void BeginPlay() override; public: // 每一帧调用一次 virtual void Tick(float DeltaTime) override; }; ``` 在这个例子中,我们声明了一个新的 Actor 类并重写了两个重要的虚函数:`BeginPlay()` 和 `Tick()` 函数[^2]。 --- #### 实现构造函数和其他方法 接下来是该类的具体实现部分,其中包含了初始化逻辑以及其他必要的功能。 ```cpp #include "MyActor.h" #include "Components/SphereComponent.h" #include "Kismet/GameplayStatics.h" // 初始化默认值 AMyActor::AMyActor() { PrimaryActorTick.bCanEverTick = true; // 启用每帧更新 USphereComponent* SphereComp = CreateDefaultSubobject<USphereComponent>(TEXT("SphereCollider")); RootComponent = SphereComp; } void AMyActor::BeginPlay() { Super::BeginPlay(); UE_LOG(LogTemp, Warning, TEXT("AMyActor has been spawned!")); // 输出日志信息到控制台 } void AMyActor::Tick(float DeltaTime) { Super::Tick(DeltaTime); FVector NewLocation = GetActorLocation(); // 获取当前位置 NewLocation.Z += 10 * DeltaTime; // 更新Z轴位置 SetActorLocation(NewLocation); // 设置新位置 } ``` 这段代码实现了以下几点: - 添加了一个球形碰撞体作为根组件。 - 在 `BeginPlay()` 方法中打印了一条消息至屏幕上的调试窗口。 - 让物体沿着 Z 轴方向不断上升,模拟一种漂浮效果。 --- #### 关于GEngine的应用 如果希望进一步增强程序的功能或者增加一些额外的信息反馈给玩家,则可以通过全局变量 `GEngine` 来完成更多操作。比如显示一条提示文字告诉用户当前的状态变化情况: ```cpp if(GEngine && IsValid(this)) { GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::Printf(TEXT("%s is moving upwards."), *GetName())); } ``` 这里使用了 `GEngine->AddOnScreenDebugMessage()` 方法来向屏幕上添加一条持续时间为五秒红色字体的消息[^4]。 --- #### 学习建议 对于初学者来说,理解这些基础知识非常重要,因为它们构成了整个项目的框架和支持后续更复杂特性的开发工作。同时还需要熟悉其他重要主题如事件处理机制、蓝图交互方式等内容[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值