跳到正文

Game Instance 设置

开始之前,先确认你的项目是否已经使用了自定义 Game Instance。
打开 Project Settings(项目设置),进入 Map and Modes(地图与模式)一节,找到 Game Instance Class 设置。

然后根据你看到的情况,判断下面三种情形中哪一种适用于你的项目:

情形 A:使用引擎默认的 Game Instance

你看到的:Game Instance Class 显示的是默认的 GameInstance 类

这说明你还没有自定义 Game Instance,请直接按下面的情形 A 步骤操作。

情形 A 步骤

情形 A
你还没有自定义 Game Instance 类

  1. 打开项目设置,进入 Map and Modes(地图与模式)一节
  2. 找到 Game Instance Class,把它的值改成 GI_EasyMainGameInstance 类


情形 B:已有自定义蓝图 Game Instance

你看到的:Game Instance Class 显示的是自定义名称(例如 GI_MyGameInstance)

这说明你已经有自定义 Game Instance。此时打开它,看右上角的 Parent Class(父类)。

如果父类是引擎通用的 GameInstance,请按下面的情形 B 步骤操作。

情形 B 步骤

情形 B
你有自定义的纯蓝图 Game Instance 类

  1. 在你自己的 Game Instance 里点击 Class Settings,打开细节面板

  2. 在 Class Options 分类下找到 Parent Class “Game Instance” 设置

  3. 点开下拉框,搜索 GI_EasyMainGameInstance 并选中它

  4. 虚幻可能会弹出警告窗口,点击 Reparent 忽略即可

  5. 最后,如果你的 Game Instance 里有 Event Init,先找到它(在蓝图中按 Ctrl + F 搜索)

  6. 右键它,选择 Add Call to Parent Function

  7. 把新生成的节点接在你的逻辑之前,如下图所示

采用这种重设父类的方式后,你仍然可以在自己的 Game Instance 里继续写游戏逻辑,不需要转移或修改资源包 Game Instance 里的任何内容。


情形 C:继承自自定义类或 C++ 的 Game Instance

你看到的:有自定义 Game Instance,但右上角的 Parent Class 不是默认的 GameInstance(例如派生自某个插件、C++ 类,或本身就是 C++ 类)

这说明你的 Game Instance 派生自其它类或本身是 C++ 类,请按下面的情形 C 步骤操作。

情形 C 步骤

情形 C
你有自定义的 C++ Game Instance 类(或派生自自定义 C++ 的蓝图)

  1. 进入 EasyGameUI/Core 文件夹,打开 GI_EasyMainGameInstance 类
  2. 在这个 Game Instance 里点击 Class Settings,打开细节面板

  3. 在 Class Options 分类下找到 Parent Class “Game Instance” 设置

  4. 点开下拉框,搜索你自己的 Game Instance 类名并选中

  5. 虚幻可能会弹出警告窗口,点击 Reparent 即可

  6. 最后进入 Project Settings 的 Map & Modes 分类,选择 GI_EasyMainGameInstance

采用这种重设父类的方式后,你仍然可以在自己的 Game Instance 里继续写游戏逻辑,不需要转移或修改资源包 Game Instance 里的任何内容。