您当前的位置: 首页 > 

开发游戏的老王

暂无认证

  • 1浏览

    0关注

    803博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

虚幻引擎图文笔记:自定义单例类(Singleton Class)

开发游戏的老王 发布时间:2020-05-30 15:29:22 ,浏览量:1

和《UE4基础:自定义GameInstance》的方法类似。和Godot不同的是UE4只能定义一个单例类,可以用它作为其它单例类的“根”

步骤
      • 新建类
      • C++实现
      • 设置为GameSingleton
      • 在C++中调用
      • 在蓝图中调用

新建类

要继承于UObject

在这里插入图片描述

C++实现

主要是实现一个获取实例的方法,这样就不用通过GEngine获取完再类型转换了。 可以根据需要标记为蓝图可调用

//GameSingleton.h
#pragma once

#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "UObject/ObjectMacros.h"
#include "GameSingleton.generated.h"

UCLASS(Blueprintable,BlueprintType)
class GAMECPP_API UGameSingleton : public UObject
{
	GENERATED_BODY()
	UFUNCTION(BlueprintCallable)
	static UGameSingleton* GetInstance();
};

GameSingleton.cpp
#include "GameSingleton.h"

UGameSingleton* UGameSingleton::GetInstance()
{
    if (GEngine)
    {
        UGameSingleton* Instance = Cast(GEngine->GameSingleton);
        return Instance;
    }
    return nullptr;
}
设置为GameSingleton

在这里插入图片描述

在C++中调用
UGameSingleton* GameSingleton = UGameSingleton::GetInstance();
在蓝图中调用

在这里插入图片描述

关注
打赏
1656935939
查看更多评论
立即登录/注册

微信扫码登录

0.0417s