UE5引擎开发软件功能记录-吸附功能的实现20220412
前言
在软件中,计划实现类似《我的世界》的方块方块放置,并能够调节方块的大小,用了几种思路
没有很好的实现,比如射线吸附法,位置判断法,最终使用了一个帖子当中的在一个cube周围放
置判定的方法进行了实现。
此文章主要是记录开发中遇到的问题。
如图所示,在方块上下左右生成多个BOX来进行判定检测。
实现关键点:
1.得到方块的一半距离(因为生成的方块会以中心点作为生成坐标,我们需要一半距离位移从而实现
方块位置的对齐)关键函数:get local bounds 获取本地边界,拆分XYZ轴/2得到的绝对值乘以缩放系
数
2.利用射线检测单位的名称,通过公共变量的方式将名称传递给判定物体上,被判定的物体可以进行
区域的重叠检测,没有被选中的物体无法进行检测(今天刚实现的内容)
3.利用折叠节点的方式能够很好的帮助我们整理节点。
4.为了更好的生成重叠,我使用摄像机摇臂+射线检测两种方式进行实现,摄像机摇臂可以控制判定
小球与地面接触或与其他物体接触后利用摇臂功能自然的进行拉伸或缩短,而射线检测生成会直接生成到地上。
下一步要改进的问题:
1.目前生成对齐还不是很准确
2.吸附的距离正常比例时没有问题,缩小容易出现间隔过远。