UE5入门第三周总结:关卡序列、paper2D与仓储系统

学习虚幻引擎已有三周,知识增长的同时对引擎未知功能的探索也在不断加深。由于基础操作越来越熟练,这周的总结可能会比较少,仅仅是一些概念和一些踩过的坑,还有基于一些简单节点做的很基础的工作。现在才真正注意到,把炫技的精力投入到增强程序健壮性上才是职业精神的体现。

关卡序列

1.关卡序列需要在关卡界面插入,整体操作类似UI动画,是帧动画的一种。

paper2D

非常感谢同在CSDN博客的blind_mokey大神的系列文章(系列文章的第一篇)带我走进了UE2D开发的世界。这里我写一些最基本的介绍和自己开发过程中踩到的坑。

  1. paper2D开发中往往使用sprite(精灵)文件,这是一种有碰撞厚度的视觉上的2D图像,可以使用UE5内置的sprite操作分割各种图像文件导出sprite文件。
  2. paper2D的组件,FlipBook Component,包括动画序列在内的大部分组件都属于这个类型,这也就给了我们寻找节点名的方向。
  3. TileMap瓦片地图,利用瓦片集分割地块后用于填充瓦片贴图的贴图类型。但要注意的是这东西就仅仅是一个贴图,没有任何碰撞检测,相当于“地毯”,如果没有坚实的地面做支撑,角色只会表演自由落体。
  4. 2D对象的碰撞非常玄学,最大的原因在于不可预测的 挤压 。解决方案就是把可以阻挡角色的目标的Z轴设置到一个比较大的值,比如Z轴缩放100倍的BoxCollision设置为BlockAll,比如Thickness超过800的Sprite。

基于UI的仓储系统

2023.4.25更新
近期较忙,许久未写近期的学习总结。事实上来说,入门的东西已经介绍的差不多,没什么值得写的了,接下来的笔记可能会迈出新手村步入简单难度。一个月前写的仓储系统,现在已经获得了新的功能,我将在这里进行总结。

拖拽

首先是拖拽问题。事实上,虚幻5原生蓝图中内置了所有UI拖拽所需要的功能,我们不需要自己去写恼人的底层,直接使用蓝图节点就可以解决问题。接下来,我来介绍如何使用蓝图自带的拖拽功能。

  1. 重载被拖拽控件的OnDragDetected函数。这个函数用于实现控件被拖拽时的应存在的功能。最核心的部分在于我们需要使用CreateDragDropOperation节点创建一个DragDrop操作。而这个操作需要我们给定对应的 payloadDragVisual 。关于payload,我在这里不详细介绍,总的来说就是委托传参的一种方式。如果我们希望拖拽的控件放在指定的位置,那么直接在payload处给一个self就可以了。对于接收者而言,接收到的数据类型就是Operation,而payload是Operation中的一个参数,我们把这个参数设为被拖拽控件本身,就可以实现在接收处接收被拖拽控件的功能。至于DragVisual,实质上是一层皮,我非常不建议各位把Self给DragVisual,尤其是功能较多的空间,会导致一系列的参数和功能问题,所以,你需要给你的按钮做一层皮控件。另外,如果我们需求差异化的拖拽功能,可以创建继承自DragDropOperation类的Object自定义功能,如果没有可以直接使用默认的class。上述的过程

  2. 重载被拖拽控件蓝图的OnMouseButtonDown函数。顾名思义,OnMouseButtonDown函数在控件被鼠标点击时调用,我们希望这个控件在被点击且不松手时被鼠标拖拽,这时就必须使用另一个蓝图节点:DetectDragifPressed。这个节点可以把捕获的鼠标点击事件转化为拖拽事件。参量看着填就行,简单易懂。上述的过程

  3. 制作用于接收的控件,需要重载OnDrop函数,这个函数可以捕获放置在此控件的 拖拽操作 ,也就是之前传递的Operation。注意,我们真正需要的参数是payload,payload本身只有数据,需要用类型转换转换为控件的类型。
    上述的过程

  4. 接下来的工作就非常简单,制作恰当的功能,完成背包。
    最终效果!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值