您当前的位置: 首页 > 

开发游戏的老王

暂无认证

  • 1浏览

    0关注

    803博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

虚幻引擎图文笔记:自定义GameInstance(5月30日 更新)

开发游戏的老王 发布时间:2020-05-29 16:12:07 ,浏览量:1

这个流程很像 Godot中的 AutoLoad

步骤
      • 自定义GameInstance类
      • 设置项目的默认GameInstance类
      • 实现获取这个GameInstance实例的方法
      • 在C++中调用
      • 在蓝图中调用

自定义GameInstance类

自定义GameInstance类自然要继承自UGameInstance基类 在这里插入图片描述

在这里插入图片描述 自动生成的GameInstance非常简单,并没有什么必须实现的方法。

//DemoGameInstance.h
#pragma once

#include "CoreMinimal.h"
#include "Engine/GameInstance.h"
#include "DemoGameInstance.generated.h"

UCLASS()
class GAMECPP_API UDemoGameInstance : public UGameInstance
{
	GENERATED_BODY()
	
};
设置项目的默认GameInstance类

在这里插入图片描述

实现获取这个GameInstance实例的方法
//DemoGameInstance.h
#pragma once

#include "CoreMinimal.h"
#include "Engine/GameInstance.h"
#include "DemoGameInstance.generated.h"

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

//DemoGameInstance.cpp
#include "DemoGameInstance.h"

UDemoGameInstance* UDemoGameInstance::GetInstance()
{
    UDemoGameInstance* instance = nullptr;

    if (GEngine)
    {
        FWorldContext* context = GEngine->GetWorldContextFromGameViewport(GEngine->GameViewport);
        instance = Cast(context->OwningGameInstance);
    }
    return instance;
}
在C++中调用
UDemoGameInstance* GInstance = UDemoGameInstance::GetInstance();
在蓝图中调用

在这里插入图片描述

在这里插入图片描述

这样就无须通过 GameGameInstance获取完再类型转换了。 在这里插入图片描述

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

微信扫码登录

0.4147s