一、目的
1、想:UE4中编写单例
2、想:场景切换时候变量不会被重置
二、参考
1、UE4基础:自定义单例类(Singleton Class)
https://orzgame.blog.csdn.net/article/details/106441788
- 总结:待检测
2、(UE4 4.20)UE4的全局单例模式Singleton(变量在切换关卡时不被GC)
https://blog.csdn.net/qq_29523119/article/details/84801353
- 总结:待检测
三、操作:一:
1、注意:
- 按照此方法创建的实例,UE4打断点无法进入,如果变量修改了,是真的修改了。
1、创建Object的C++类:MyGameSingleton
1、项目设置
1、头文件
#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "Engine.h"
#include "UObject/ObjectMacros.h"
#include "MyGameSingleton.generated.h"
/**
*
*/
UCLASS(Blueprintable, BlueprintType)
class WQX_API UMyGameSingleton : public UObject
{
GENERATED_BODY()
UFUNCTION(BlueprintCallable, Category = "XZY")
static UMyGameSingleton* GetInstance();
};
1、、源文件
// Fill out your copyright notice in the Description page of Project Settings.
#include "MyGameSingleton.h"
//GameSingleton.cpp
//#include "GameSingleton.h"
UMyGameSingleton* UMyGameSingleton::GetInstance()
{
if (GEngine)
{
UMyGameSingleton* Instance = Cast<UMyGameSingleton>(GEngine->GameSingleton);
return Instance;
}
return nullptr;
}
1、C++中调用
UMyGameSingleton* GameSingleton = UMyGameSingleton::GetInstance();
1、蓝图调用
.