UE4常用到的C++函数和类

ConstructorHelpers类

需包括头文件

#include "UObject/ConstructorHelpers.h"

应为静态加载只能在构造函数中添加
1.FObjectFinder用于加载材质和模型等
2.FClassFinder用于加载其他类,因格式问题需在复制地址后加入_C或者改成/Game/Character/NewAnimBlueprint,否则会出BUG一开就崩溃

ABaseCharacter::ABaseCharacter()
{
static ConstructorHelpers::FObjectFinder<USkeletalMesh>Skelel(TEXT("在蓝图中复制其地址"));
static ConstructorHelpers::FClassFinder<UAnimInstance>BaseChaGameInstance(TEXT("/Game/Character/NewAnimBlueprint"));
if (GameCharacterSkelel.Succeeded())
	{
		GetMesh()->SetSkeletalMesh(GameCharacterSkelel.Object);
		GetMesh()->SetAnimInstanceClass(BaseChaGameInstance.Class);
	}
}

ConstructorHelpers内只有一个命名空间ConstructorHelpersInternal和一个struct

GameplayStatics类

需包括头文件

#include "Kismet/GameplayStatics.h"

我们一般在蓝图中调用getplayercontroller或者getplayercharacter时,直接写就好了,而在CPP中
要使用GameplayStatics::来调用,而GameplayStatics是一个函数库,调用起来也很方便

UGameplayStatics::GetPlayerController(GetWorld(), 0)->bShowMouseCursor = true;
UGameplayStatics::OpenLevel(GetWorld(), TEXT("/Game/MAP/ExeciseMap"));
ACharacter*BaseCharacter=UGameplayStatics::GetPlayerCharacter(this,0);

没事可以多Alt+G翻翻源码观看

发布了20 篇原创文章 · 获赞 1 · 访问量 2701

猜你喜欢

转载自blog.csdn.net/weixin_42295465/article/details/103683827