UE4随笔—— 关卡切换

关卡切换

**
一,实现的目的
在UE4 中有一种场景,需要创建多个关卡,在关卡之间进行切换。 此时可能会用到流关卡切换的的一些功能实现。

首先说一下一些 常用的 蓝图节点:
加载关卡
UE4随笔—— 关卡切换_第1张图片
卸载关卡
UE4随笔—— 关卡切换_第2张图片
调用其他关卡里面的功能函数。 这一条蓝图节点非常实用。 但是有一个使用的注意事项:

它只能在关卡蓝图中进行调用。日常的常规蓝图中是无法使用的。一般使用的时候, 前面首先调用一下 load stream leavel , 加载一个关卡, 然后调用下面的指令,调用加载的关卡蓝图中的 功能函数
UE4随笔—— 关卡切换_第3张图片

以上三个 核心的功能函数 , 配合UMG 实现一个小型的 应用讲解。
应用讲解:
永久性关卡:
FirstPersonExampleMap

附属关卡:
UE4随笔—— 关卡切换_第4张图片
注意红色箭头部分,可以在当前的永久关卡,直接打开附属关卡的 关卡蓝图, 防止当前的关卡蓝图出现被覆盖掉的情况。

实现的目的:
1,启动游戏之后, 进入第一个关卡这是一个永久性关卡,永远都会存在。 然后直接加载流关卡AnimatedLoadingSplashScreen ,此关卡通过UMG 提示 是这是一个临时的显示关卡。
UE4随笔—— 关卡切换_第5张图片
1, 从临时显示关卡 过渡到 下一个关卡 LoadingMainMap , 此关卡主要通过UMG 显示loading 的UMG .
UE4随笔—— 关卡切换_第6张图片
2,LoadingMainMap 关卡, 是一个带有button 的 MainMenuUMG 关卡, 可以通过此关卡 切换到, 任意其他的关卡里面。
UE4随笔—— 关卡切换_第7张图片

逻辑实现:
1,从永久关卡 切换 到第一个 关卡,只是用来文字演示的关卡逻辑蓝图
UE4随笔—— 关卡切换_第8张图片
2,从LoadingSplashScreen 关卡蓝图的 功能函数 LoadSplashScreen 实现的逻辑

(1)加载loadingUMG ,显示在画面端
UE4随笔—— 关卡切换_第9张图片
(2)开始加载下一个 关卡AnimatedLoadingMainMap,延时2s, 然后将loading 的UMG 从当前画面取消,调用AnimatedLoadingMainMap 关卡蓝图的 功能函数LoadMainMenu,同时将当前关卡取消。
UE4随笔—— 关卡切换_第10张图片
(3)AnimatedLoadingMainMap 是一个核心的关卡。 我们后面的所有关卡的选择都是从本关卡可以进行跳转。
我们将所有的 关卡跳转触发 做成了 button 的触碰。
UE4随笔—— 关卡切换_第11张图片
这是一个跳转关卡的例子。 注意: 我们提前定义了一个 GameInstance ,里面存储了一个名称类型的变量, 用来存储 需要跳转的关卡的 名字。
MainUMG 页面中, 每一个button 按下时都会对应一个 关卡的名字, 我们需要将 这个名字 存入到 Gameinstance 中的变量中,然后 我们调用 mainmap 的关卡蓝图, 调用其中的接口函数。注意接口函数需要自己创建一个(不需要输入参数。)
UE4随笔—— 关卡切换_第12张图片
(1)跳转loading 界面, main menu 界面取消, 鼠标不显示,按键或者键盘 的输入对UMG 不会有影响。Yeah, GameOnly means no UI. That also means that UMG won’t register “OnKeyDown” etc.
(2)调用 loadingScreen 关卡蓝图中的 LoadloadingScreen 功能函数。
UE4随笔—— 关卡切换_第13张图片
(3)Loadingmap 的关卡蓝图的 功能函数 LoadLoadingScreen
UE4随笔—— 关卡切换_第14张图片
加载loading UMG 并显示。
加载关卡。注意,名字已经存储到 gameinstance 中。
UE4随笔—— 关卡切换_第15张图片
UE4随笔—— 关卡切换_第16张图片
每一个需要加载的关卡 ,对应的关卡蓝图 我们都定义了一个 LoadLevel 的功能函数。
以下是 其中的一个Map
UE4随笔—— 关卡切换_第17张图片
UE4随笔—— 关卡切换_第18张图片
UE4随笔—— 关卡切换_第19张图片

注意:
(1)这些通过button 点击 切换过去的map , 实际上才是我们 真正有场景的map。 一开始的map , 我们一开始都是设置成 空的, 只不过在上面添加了 UMG .
(2) 有场景的 关卡蓝图, 在 playerstart 点, 生成第一人称角色。
(3) 使用“Possess”函数让控制器控制新生成的对象 ,这样鼠标和键盘 就可以控制新生成的角色了。我们使用的是自己的 第一人称射击的角色。
(4)注意蓝图中最后一个 show mouse cursor , 一开始 设置为 true ,在当前map 体验过程中, 射击时会很不流畅。

你可能感兴趣的:(Ue4,常规技术)