我打包之后的VR项目发现一个问题,就是在开发状态里面可以看到手柄发出来的射线,在打包好的项目中看不到了,虽然交互还在,按钮也还可以点击但是没有那条射线很是别扭,之前我绘制射线的蓝图如下所示
这种在开发状态下是可以看到射线的,但是打包之后就看不到了,然后我查阅了一些资料,spline可以很好的解决这个问题,下面我就叙述一下用spline绘制射线的大体过程。我就在之前项目的基础上直接创建spline了。
从OutHit里面引出引出一条线直接提升变量
然后把变量分割结构体引脚
蓝图的部分逻辑如下图所示,在这里进行解释一下
blocking Hit是是否击中的意思
Location 是如果射线碰撞到物体这个就是碰撞点得位置
the Start 射线是开始的点
the End 射线是结束的点
这里的Select的意思是如果有碰撞到物体就以碰撞点为输出点,如果没有碰撞到物体就以射线的结束点输出点。
make array是创建一个坐标数组,有两个坐标点代表射线的起点和射线的终点。
然后设置 SET Spline points
因为是空间中的点,所以选择World
因为Spline本身不会在空间内显示,所以要建立Spline Mesh
新建类型为Spline Mesh Component变量命名为Spline Mesh
首先判断spline mesh 是否已经存在,如果不存在就创建一个Spline mesh
这里要注意设置一下Add Spline Mesh Component 属性里面的Static Mesh ,我设置为了VR模板里面传送默认的Static Mesh:BeamMesh
如下图所示
接着给这个Mesh 创建材质,用的是VR模板画抛物线的材质
把生成的Mesh赋值给创建的Spline Mesh
设置网格体的起点和终点,具体的蓝图逻辑如下
获得Spline 的起点和终点坐标
整体的逻辑蓝图如下图
这样我们就完成了用Spline 绘制射线的功能,在VR打包后这个射线还是显示的。
参考链接:参考视频