目录
一、什么是关卡实例
关卡实例本质上是一个已存在关卡的可重复使用的实例化版本。它基于原始关卡,但可以在运行时进行独立的修改和定制,同时保持与原始关卡的关联。
(1)高效复用性
关卡实例可以避免重复创建相似的关卡内容,例如在一个大型开放世界游戏中,有多个相似的场景区域(如森林中的不同树屋区域),开发者可以创建一个树屋的基础关卡,然后通过关卡实例功能在不同位置快速生成多个类似的树屋关卡实例,大大提高开发效率。
对于游戏中的重复性元素,如迷宫中的相同房间布局,只需要创建一个房间关卡,然后根据需要实例化出多个关卡实例放置在迷宫的不同位置。
(2)动态修改性
在运行时,可以对关卡实例进行动态的属性修改。比如更改关卡实例中的光照强度、物体颜色、物理属性等,而不会影响到原始关卡和其他的关卡实例。例如在一个赛车游戏中,可以根据比赛的时间变化(白天、夜晚),动态修改赛道关卡实例的光照和环境氛围。
可以通过蓝图或代码来控制关卡实例的属性修改,使游戏具有更高的灵活性和动态性。比如在一个角色扮演游戏中,根据玩家的技能释放或剧情发展,改变某个场景关卡实例的地形结构或障碍物分布。
二、创建关卡实例
在关卡中选中Actor,右键选择“关卡-》创建关卡实例”
点击“确定”
将关卡实例保存到内容浏览器中
此时我们就可以看到已经将选中的几个Actor合为一个关卡实例了。
此时我们就可以将这个几个Actor作为一个整体,可以整体移动、复制等
我们还可以单独打开这个关卡实例。双击打开“DemoMap_Inst1”
在无光照模式下可以看到该关卡如下
三、编辑关卡实例
右键点击选中的关卡实例,选择“关卡-》编辑”
此时可以看到除了选中的关卡实例,其他区域为灰色部分。
此时我们就可以单独操作该关卡实例中的每一个Actor
当编辑好后选择“关卡-》提交”来保存对关卡实例的修改。提交后,如果场景中有多个该关卡实例,那么这些关卡实例都会做相应的修改。因此对于重复性高的区域我们可以将其作为一个关卡实例,这样每次只需修改一次关卡实例,场景中的其它关卡实例也会自动被修改。
四、破坏关卡实例
右键点击选择的关卡实例,选择“关卡-》破坏-》破坏关卡实例”即可。破坏后的关卡实例中的所有actor仍将以个体单位保留在场景中。
五、创建关卡实例蓝图
比如我们选中如下几个actor,准备将它们作为一个关卡实例
选择“关卡-》创建已打包关卡Actor”
点击确定
此时引擎不仅会让我们制定关卡实例的保存位置,还会让我们保存一份关卡实例蓝图
打开这个关卡实例蓝图,此时我们可以使用蓝图来对这个关卡中的每一个物体就行操作了。比如我们可以设置当玩家控制的角色进入我们这个关卡实例中的时候就触发相应的逻辑。