您当前的位置: 首页 > 

暂无认证

  • 8浏览

    0关注

    97050博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

发布时间:2020-05-29 16:12:07 ,浏览量:8

这个流程很像 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<UDemoGameInstance>(context->OwningGameInstance); } return instance; } 
在C++中调用
UDemoGameInstance* GInstance = UDemoGameInstance::GetInstance(); 
在蓝图中调用

在这里插入图片描述

在这里插入图片描述

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

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

微信扫码登录

0.5193s