UE4 C++ UGameInstance实例化

本文介绍了如何在UnrealEngine中创建名为UMyGameInstance的游戏实例类,设置其公共变量并从其他类中访问这些变量。重点展示了如何在BeginPlay函数中初始化和检查GameInstance属性。
摘要由CSDN通过智能技术生成

1.创建GameInstance C++类
在这里插入图片描述
2.在.h添加变量

class 工程名称_API UMyGameInstance : public UGameInstance
{
	GENERATED_BODY()
	
public:	//定义了三个公开的变量
	UMyGameInstance();
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyGameInstance")
	FString Name;
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyGameInstance")
	float Health;
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyGameInstance")
	int32 Age;
};

3.在.cpp初始化这三个变量值

#include "MyGameInstance.h"

UMyGameInstance::UMyGameInstance()
{
	Name = TEXT("zhangsan");
    Health = 198.4;
    Age = 88;
}

4.接着在其他的文件编写

.h

#include "MyGameInstance.h"	//引用MyGameInstance.h文件,才能引用到MMyGameInstance类里面的内容

UCLASS()
class 工程名称_API A工程名称+类名 : public A基类名
{
//新建一个MyGameInstance类型的指针变量,变量名称为:MyGameInstance
	UPROPERTY()
		UMyGameInstance *MyGameInstance;
}

.cpp

void A工程名称+类名::BeginPlay()
{
	Super::BeginPlay();
	
MyGameInstance = Cast<UMyGameInstance>(GetWorld()->GetGameInstance());
	if(MyGameInstance)
	{
		UE_LOG(LogTemp, Warning, TEXT("MyGameInstance is %s"), *MyGameInstance->GetName());	//注意这里打印的方法,有的带*号
		UE_LOG(LogTemp,Warning, TEXT("MyGameInstance's Name is %s"), *MyGameInstance->Name);
		UE_LOG(LogTemp,Warning, TEXT("MyGameInstance's Health is %f"), MyGameInstance->Health);
		UE_LOG(LogTemp,Warning, TEXT("MyGameInstance's Age is %d"), MyGameInstance->Age);
	}

5.设置GameInstance
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值