Unreal4 入门(关卡动态加载)

 

    对于大型游戏MMORPG游戏或是3D街景(虚拟现实)还有大型无缝地图都需要地图啊,关卡动态加载的机制来达到让用户感觉自己一直是在漫游,而不会出现Loading(读条),卡界面等情况。当然除非是垮区域无法依靠关卡和关卡中之间的关系做处理。
 
     UnrealEngine4 作为一个多年处于世界前矛的商业引擎,自然而然也为大家考虑到这个这种硬性需求。UnrealEngine4 中的动态加载大概分为3种。
 
     首先需要明确下几点概念。因为再同学们信息会等的前提下才会更有利于理解和相互交流。好了,不瞎扯了进入正题。
 
     1.地图(Map):地图这个概念在UnrealEngine4中基本上所示虚拟出来。当然我们编译完一个场景后会保存到自己的工程目录下 如:XXXX\Content\Maps\  保存的文件名叫做.umap。一个工程下可以有很多很多.umap文件,但是我们需要注意到,我们在单独保存场景时编辑器都是基于Level操作的。代码中只有一个函数是关于地图[UEngine::LoadMap]。  如下图:
 
Unreal4 <wbr>入门(关卡动态加载)
 
    2.关卡(Level):关卡这个概念应该是在UnrealEngine4最常用使用的,在UE4编辑器中还有一个单独Levels编辑器。  如下图:
 
Unreal4 <wbr>入门(关卡动态加载)
 
 
    3.世界(World):World这个概念之前在UnrealEngine3中一直跟地图的概念差不多,World下面会有很多的Levels还有八叉树场景管理器,以及一些寻路啊,对Level和Actor的管理函数。当然现在也差不多,不过没有看见八叉树,多了一种LevelActor的类,SpawnActor中创建对象为"ConstructObject"之前创建对象另一个函数需要Outer和Owner的"DuplicationObject"。
 
 
言回正传:UnrealEngine4引擎提了我们有三种动态加载的方法,下面一一介绍。
 
一. 通过使用LevelStreamingVolume的方法:
 
    通过Modes窗口下的Volumes找到LevelStreamingVolume,拖动到编辑器中让它覆盖住同学们两个Level,调节LevelStreamingVolume的StreamingUsage属性(比如有加载后锁定,加载,加载后显示等)。
    当我们的Pawn进入到这个LevelStreamingVolume后关卡就会对应的加载啦。  如图:
 
Unreal4 <wbr>入门(关卡动态加载)
 
 加载类型设置属性图例
 
Unreal4 <wbr>入门(关卡动态加载)

二. 通过使用BluePrint的方法:
 
    通过打开关卡的Blueprints使用蓝图完成动态加载。那么在Blueprints中完成动态加载我们需要用到几个节点分别为 LoadStreamLevel和UnloadStreamLevel。 如图:
 
LoadStreamLevel节点
Unreal4 <wbr>入门(关卡动态加载)
UnloadStreamLevel节点
Unreal4 <wbr>入门(关卡动态加载)
    
    特别要注意的是LoadStreamLevel节点需要在MakeVisibleAfterLoad打勾,不然不会显示的呦。第二个暴露变量ShouldBlockonLoad打上勾会,不会被UnloadStreamLevel节点卸载(同学们自行按照需求选择呦)。还有一定要在Leves编辑器中把修改动态加载方法中的[ 总是加载]改成[ 蓝图]喔,不然通过Blueprints无法控制动态加载的。
 
 
三. 通过写代码的方式加载
 
    在需要切换动态加载关卡的时候,调用[UGameplayStatics::LoadStreamLevel]函数来加载想要使用的关卡。
    大概流程是创建一个FStreamLevelAction,这个Action回去读暴露参数的包遍历所有Level关系找到指定关卡,然后ActivateLevel这个关卡激活的时候会有加载或者卸载关卡。
 
PS:
    这几天一直在回忆之前使用UnrealEngine4学过的知识,也同时在看UnrealEngine4的新代码,如果出现概念混淆的情况或者叙述错误的情况,请各位同学指出并与我交流 Unreal4 <wbr>入门(关卡动态加载)。  有机会请你们吃饭,喝咖啡。

转载于:https://www.cnblogs.com/UnrealEngine4/p/3729729.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Unreal Engine中,可以通过使用一些内置的功能和类来加载本地图片。 要加载本地图片,首先需要将图片文件拷贝到你的Unreal项目目录中的合适位置,比如放在Content文件夹下的Images子文件夹中。 然后,我们需要创建一个引用来访问该图片。可以在Unreal编辑器中通过右键单击Content面板并选择“Import”来导入图片文件。然后,选择你刚刚拷贝到项目文件夹的图片,并点击“导入”。 导入完成后,你可以在Content面板中找到该图片,并且可以在Level编辑器中拖拽它来将其放置在场景中。 接下来,我们需要在蓝图或者代码中加载该图片。如果在蓝图中操作,可以使用Texture2D类型的变量来存储加载的图片。首先,创建一个Texture2D类型的变量并将其拖拽到场景中。 然后,使用“Create Texture 2D”节点来创建一个Texture2D实例,并通过“Load Texture 2D From File”节点来读取本地图片文件,最后将该Texture2D实例赋值给变量。 如果是在代码中加载图片,可以使用FTexture2DDynamicResource类来加载本地图片,设置其路径并调用Load()方法完成加载。 无论是在蓝图中还是在代码中加载图片,一旦加载完成,你就可以将其用于材质、UI、纹理等任何需要图片资源的地方了。 综上所述,通过上述步骤和方法,你可以在Unreal Engine中加载本地图片并在项目中使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值