unreal 切换关卡_unreal 关卡蓝图 - CSDN
  • [unreal] 切换关卡

    2018-01-31 23:03:17
    最近开始研究unreal里的关卡切换,中途绕了不少弯路,特此记录一下。  一开始我一直按照unity中的场景来理解关卡。后来发现这两者并不是完全对等的,关卡更像是一个区域,所以一个场景里有多个关卡也是合理的。 ...

            最近开始研究unreal里的关卡切换,中途绕了不少弯路,特此记录一下。

            一开始我一直按照unity中的场景来理解关卡。后来发现这两者并不是完全对等的,关卡更像是一个区域,所以一个场景里有多个关卡也是合理的。

            1.OpenLevel

            一开始使用了一个OpenLevel的接口。

            (1) 在蓝图中,直接搜索,拖拽出来即可,一般情况下只需要填一个参数:关卡的名称。不需要带路径。

          

            (2) 在代码中,该函数是UGameplayStatics类里的一个静态函数,具体定义如下:

              

         头文件为:#include "Kismet/GameplayStatics.h"

         先试着用了一下这个接口,功能正常,但是有一个严重的问题,速度特别慢,我的场景有一点复杂,加载时间就花费了40多秒,这是无法忍受的。所以我就开始寻找有没有后台异步加载场景的接口。

          2.LoadStreamLevel

         后来我又找到了一个满足要求的接口LoadStreamLevel。

         (1) 在蓝图中,右键搜索即可拉出该接口:

         

             这里有两个可勾选的参数,可由名字直接看出它的含义,在这里,根据需求,我勾选了加载完成后显示,以及加载过程中堵塞(此时用户只能等待过图)。

         (2) 在代码中,这个函数同样定义在UGameplayStatics类里(还有一个对应的Unload版本)

           

           开始用这个接口没有任何反应,一直搞不清楚是哪里的问题,后来无意中发现要实现流关卡切换,首先要把所有需要的关卡都放到关卡编辑器中,而OpenLevel则是不需要的。

           具体可在菜单栏-窗口中点击关卡(level),在弹出的界面中,选择Add existing来添加已存在的关卡。

            

         此时场景中会显示所有关卡,可以点左边的眼睛来控制显隐。这时候,场景就基本在3秒内加载完毕了。

         实际上可以看出,所有可以切换的流关卡都是作为永久性关卡的子关卡存在的。


            3.关于gamemode

            gamemode,也就是游戏模式,在这里我们可以指定这个游戏的基本属性。

            我这里有一个比较特殊的情况,就是我使用了一个插件,这个插件有着自己的一套gamemode,我又额外做了一个关卡,用了另一套gamemode,现在需要在这两个关卡中做一个切换。

            在使用loadlevel接口的时候,这个切换毫无问题,我只需要在世界设置界面,给第一个关卡设置一个gamemode,再打开另外一个关卡,重新设置一个gamemode就可以了。但是改用了loadstreamlevel后,gamemode就无法切换了,哪怕我在虚幻编辑器中动态修改也没有反应。在这一块我查了大量资料,才确认了一个事实:

            在unreal中,一个关卡只能对应一个gamemode。

            从某种程度上来说,这是合理的,每个世界都有着它特有的规则,如果存在两套规则,就会发生混乱。

            而对于loadstreamlevel而言,其他的关卡是作为子关卡而存在的,所以实际上它们依然被认为是一个关卡整体,这整个关卡的gamemode,取决于根关卡,也就是永久性关卡的gamemode。

            最后的解决方案,就只能魔改插件代码再编译,强行把我的gamemode逻辑塞进了插件的gamemode代码中。

    展开全文
  • 今天在做白天和夜晚场景切换工作,白天有几种,晚上有几种,为了偷懒,我做了一个CustomEvent,for循环UnloadStreamLevel,然后在对应的LoadStreamLevel,结果出问题了,左上角红色显示,没有构建。  解决办法:一...

            今天在做白天和夜晚场景切换工作,白天有几种,晚上有几种,为了偷懒,我做了一个CustomEvent,for循环UnloadStreamLevel,然后在对应的LoadStreamLevel,结果出问题了,左上角红色显示,没有构建。

            解决办法:一个一个的UnloadStreamLevel,这样能保证一定是Complete完之后才进行LoadStreamlevel。

            Ps:UnloadStreamLevel、LoadStreamlevel只有在关卡蓝图中才会现身,所以做个Function都不行。只能让蓝图看着不简洁了。

    展开全文
  • UE4中切换关卡

    2017-03-03 17:06:36
    UE4中切换关卡本文为切换关卡的简单示例。

    UE4中切换关卡

    本文为切换关卡的简单示例。


    1. 新建项目

    在UE4中创建新的项目,这里选择的模板是ThirdPerson,并选择了“具有初学者内容”,是因为里面包含了几个已经建立好的Level场景,可以简化示例。之后点击“创建项目”。
    新建项目

    2. 创建盒体触发器

    在编辑器左侧栏目中选择“盒体触发器”,拖放到需要触发位置,调整盒体大小以便于触发。
    盒体触发器

    3.创建蓝图

    选择蓝图→打开关卡蓝图,按照下图编辑蓝图。
    创建蓝图

    4.人物到达触发器位置

    到达触发器

    5.触发并切换到新的场景

    触发并切换到新的场景,第一次可能比较慢,第二次触发就会比较快了。
    触发并切换

    展开全文
  • UE4随笔—— 关卡切换

    2020-04-03 14:11:10
    关卡切换 ** 一,实现的目的 在UE4 中有一种场景,需要创建多个关卡,在关卡之间进行切换。 此时可能会用到流关卡切换的的一些功能实现。 首先说一下一些 常用的 蓝图节点: 加载关卡 卸载关卡 调用其他关卡里面的...

    关卡切换

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

    首先说一下一些 常用的 蓝图节点:
    加载关卡
    在这里插入图片描述
    卸载关卡
    在这里插入图片描述
    调用其他关卡里面的功能函数。 这一条蓝图节点非常实用。 但是有一个使用的注意事项:

    它只能在关卡蓝图中进行调用。日常的常规蓝图中是无法使用的。一般使用的时候, 前面首先调用一下 load stream leavel , 加载一个关卡, 然后调用下面的指令,调用加载的关卡蓝图中的 功能函数
    在这里插入图片描述

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

    附属关卡:
    在这里插入图片描述
    注意红色箭头部分,可以在当前的永久关卡,直接打开附属关卡的 关卡蓝图, 防止当前的关卡蓝图出现被覆盖掉的情况。

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

    逻辑实现:
    1,从永久关卡 切换 到第一个 关卡,只是用来文字演示的关卡逻辑蓝图
    在这里插入图片描述
    2,从LoadingSplashScreen 关卡蓝图的 功能函数 LoadSplashScreen 实现的逻辑

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

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

    展开全文
  • 实现两个pawn的切换

    2018-06-08 16:59:27
    在playercontroller里面编写下面代码
  • UE4开发中,很多对象在切换关卡中,伴随定义在Actor的各种对象伴随着Actor的消亡也被GC掉了。比如在我们AMyCharacter里定义各种UObject变量,等切换关卡时,我们的Character销毁了,于是里面的各种UObject也跟着消亡...
  • 对于大型游戏MMORPG游戏或是3D街景(虚拟现实)还有大型无缝地图都需要地图啊,关卡动态加载的机制来达到让用户感觉自己一直是在漫游,而不会出现Loading(读条),卡界面等情况。当然除非是垮区域无法依靠关卡关卡...
  • 视频链接如下点击打开链接
  • Unreal Engine4 C 动态加载Level关卡 添加依赖 Unreal Engine4 C++ 动态加载Level(关卡)今天研究了下如何使用代码来加载编辑好的关卡,现在已知的是以下两种方式: 使用OpenLevel方法 UGameplayStatics::OpenLevel...
  • (文章为自己制作学习过程中的技术总结,如有不正确的理解,欢迎批评指正) ...基本都是在一个父关卡里无缝衔接的,所以本篇不谈此类关卡流的情形,只谈及针对不同关卡切换时如何实现出生点的设置(比如level01是家...
  • ue4 关卡切换

    2019-08-22 12:23:00
    0.无缝和非无缝,是单机和多人游戏都存在的关卡切换形式。并不仅仅是指多人游戏。 1.无缝过程整体是异步的, url中只有map部分有效,加入viewport的UUserWidget将保留,如果联网,不会断开连接,过程中将调用UWorld:...
  • 一. 标签栏标签栏就是最顶部看起来像这样的东西: 在最右方就是项目的名称,如这里的test1。...1) 文件:创建、打开、保存关卡/地图和创建或打开项目。游戏打包也是在这里。这里也有不同的设置
  • Unreal Engine 4 初学者教程:开始 原文:Unreal Engine 4 Tutorial for Beginners: Getting Started 作者:Tommy Tran 译者:kmyhy Unreal Engine 4 是一个游戏开发工具集,能够开发从 2D 手机游戏到 3A ...
  • 文章目录添加关卡几何体添加几何体几何体挤压减去几何体添加光源给几何体贴材质、贴纹理场景管理成品 Unreal Engine 4 简称UE4,后续文中都使用简称。 本文知识来源:UE4游戏关卡制作 旨在记录一些重要的知识点。 ...
  • 《精通Unreal Engine 3卷1:3D游戏关卡设计基础篇》是您认识并掌握最新最热门的游戏引擎(虚幻引擎3)的首选指南,无论您是初次接触mod制作的爱好者,还是职业的关卡设计人员,都能从本书中受益、本书中包含了读者想...
  • 在众多关卡中来回切换,就出现了一个问题,因为子关卡不能获取到其他关卡中的数据,所以需要一个公共的变量来进行记录所需要的数据,进行获取以及设置。 示例:两个子关卡中都有控件蓝图,分别有两个按钮,点击后...
  • 参考 流关卡与无缝地图切换
  • 我们知道虚幻里要加载新的关卡一般是通过Open Level函数实现,如下所示。但是,load level函数会阻塞进程,如果之前有加载动画在播放的话,当执行load level函数时,所有进程都停止,动画将会停止。如下为验证蓝图。...
1 2 3 4 5 ... 16
收藏数 303
精华内容 121
关键字:

unreal 切换关卡