UE5C++入门笔记

本文介绍了C++中的关键操作,如使用UE_LOG进行日志打印,C++List的增删改查方法,以及C++中的属性和函数说明符,还涵盖了类型转换,如FString到其他类型的数据转换。

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

代码打印:

UE_LOG (日志打印)

GEngine->AddOnScreenDebugMessage (屏幕打印 对应蓝图的打印字符串

获取游戏控制器

UGameplayStatics::GetPlayerController(GetWorld(), 0)

控制主线程睡眠

FWindowsPlatformProcess::Sleep( float Seconds )

UE提供的线程锁,参数为锁的类型

FScopeLock Lock = FScopeLock(&CriticalSection);

键值对(增删改查):

增:Emplace //添加键值对

删:Remove(x);//移除key值为x的元素,Empty();//清空所有的数据

查:Contains //查找匹配的键值对 是否包含,Find()//查找匹配键值Value返回指针,FindKey//反向查找匹配的Key返回指针,GenerateKeyArray(x)//返回所有的键参数x为储存所有键值的容器,GenerateValueArray(x)//返回所有的值参数x为存储所有值的容器      


说明符:

属性说明符:

VisibleDefaultsOnly                  仅类默认设置可见

VisibleInstanceOnly                  仅实例化细节面板可见

VisibleAnywhere                       默认设置和实例化面板都可见

EditDefaultsOnly                      仅在类默认设置里面编辑

EditInstanceOnly                      仅在实例化细节面板编辑

Editanywhere                           类默认设置和实例化细节面板都可以编辑

BlueprintReadOnly                   仅仅在蓝图中可读 (需要配合Editanywhere使用)

BlueprintReadWrite                  在蓝图中可读可写 (需要配合Editanywhere使用)

Category="x"    在搜索中存放x目录 (Editanywhere, BlueprintReadWrite,Category="x")   还可以"x|y"x的子目录y 需要配合使用         

ToolTip                                       属性的介绍(Editanywhere, BlueprintReadWrite,meta = (ToolTip ="属性说明")) 

函数说明符:

BlueprintCallable    蓝图执行引脚可连接的宏

BlueprintPure          纯函数止咳调用

                 


类型转换:

Fstring转为 FName

Fstring str =TEXT(TextSString"");

FName name = FName(*str);

FNma转为FString

FString FStr = Name.ToString(); 

String转FSting

std::string stdStr = “TextString”;

FString MyStr(stdStr.c_str());

FString  转 std::String

std::string TargetString(TCHAR_TO_UTF8(*MyStr))

FString 转 char*

char* c = TCHAR_TO_UTF8(*MyStr);

FString 转 Int32

FString Str = TEXT("TestString");

int32 I = FCString::Atoi(*Str);

FString转float

int32 f = FCString::Atof(*Str);

FString 转 Bool

bool bNewBool = Str.ToBool();

int32转FStirng

FString FStr = FString ::FromInt(123);

float 转 FString

FString TStrl = FString ::SanitizeFliat(36.23f);

FString 转 TCHAR*

FString Str(TEXT("TextString"));

cosnt TCHAR& MyChar = *Str;

FString 转 FText

Ftext MyText = FText::FormString(Str);

FText 转 FName

FName Name = FName(*MyText.toString());

FName 转 FText

FText MyText1 = Ftext::FormName(Name);

Fstring 转 Array<uint8>

FBase64::Decode(str,outDataArray);

Array<uint8> 转 Fstring

Fstring D额是TST人=  FBase::Encode(outDataArray);

枚举转字符串

通过枚举类型找到枚举对饮的类型COD

cosnt UEnum* EnumPtr= FindObject<UEnum>(ANY_PACKAGE,TEXT("枚举名称"),true);

if(EnumPtr) 判断是否为空指针

{  FString str= EnumPtr->GetNameStringBuIndex(枚举名称::对应的没加班类型);

03-31
<think>嗯,用户想了解Unreal Engine 5C++的使用教程或文档。首先,我需要确认用户的需求。他们可能刚接触UE5,想学习如何在引擎中使用C++进行开发。可能需要从基础的环境配置开始,然后逐步介绍核心概念和实际应用。 接下来,我应该参考用户提供的引用内容。引用1提到了UE4的C++入门教程,但用户问的是UE5,不过可能大部分内容仍然适用,需要指出可能的版本差异。引用3提到了UE5的工程环境配置,特别是.NET版本的对应情况,这点很重要,环境配置是入门的第一步,必须正确。 然后,我需要考虑用户的真实需求。他们可能不仅需要教程链接,还需要实际的学习路径,比如官方文档、视频教程、社区资源等。同时,用户可能对如何在UE5中结合C++和蓝图感兴趣,或者性能优化、调试方法等。 还要注意用户可能遇到的问题,比如环境配置错误、代码编译问题,或者如何创建C++类并添加到项目中。需要分步骤说明,确保清晰易懂。另外,生成相关问题时要覆盖常见的学习难点,如调试技巧、与蓝图的协作、性能优化等。 最后,检查是否有遗漏的信息,比如官方文档的链接是否正确,推荐的教程是否适合初学者,是否需要提醒用户注意版本兼容性,比如UE5的不同子版本可能需要不同的工具配置。确保所有信息准确,并引导用户正确配置环境,避免常见陷阱。</think>### Unreal Engine 5 C++ 使用教程与文档指南 #### 1. 环境配置与基础入门 - **开发环境要求**: - 安装Visual Studio 2022(社区版免费),需勾选“使用C++的游戏开发”组件[^3]。 - 根据UE5版本选择.NET SDK: $$ \text{UE5.0 → .NET Core 3.1, UE5.1+ → .NET 6.0} $$ - 在Epic Games启动器中创建C++项目时,确保勾选“包含初学者内容包”。 - **第一个C++类**: 1. 右键项目内容浏览器 → `新建C++类` 2. 选择`Actor`或`Character`基类 3. 使用`UPROPERTY()`宏暴露变量到编辑器: ```cpp UPROPERTY(EditAnywhere, Category="Movement") float MoveSpeed = 500.0f; ``` #### 2. 核心学习资源 - **官方文档**: - [Unreal Engine 5 C++编程指南](https://docs.unrealengine.com/5.0/en-US/API/)(含API参考与示例) - 官方示例项目《Lyra Starter Game》包含完整C++实现[^2] - **视频教程**: - Epic官方YouTube频道的《UE5 C++基础系列》 - 社区推荐课程《Unreal Engine 5 C++终极开发者课程》(Udemy平台) #### 3. 关键特性实践 - **异步资源加载**: ```cpp TSoftObjectPtr<UTexture> SoftTexture; StreamableManager.RequestAsyncLoad(SoftTexture.ToSoftObjectPath(), [this](){ OnTextureLoaded(); }); ``` - **大规模世界支持**: 使用`World Partition`系统时需配合`UWorldPartitionSubsystem`进行场景管理[^1] #### 4. 调试与优化 - 使用`UE_LOG`输出调试信息: ```cpp UE_LOG(LogTemp, Warning, TEXT("Character health: %f"), CurrentHealth); ``` - 内存分析工具: ```bash # 命令行参数 -statcmdfile=MemoryStats.txt -ExecCmds="stat memoryfull" ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值