(个人)VR实时交互的太极拳学习系统创新实训第六周(1)

在上周实现了如何通过手柄来进行角色的瞬移,但是拿取手柄需要玩家反复的脱下和带上头盔,非常不方便。经过小组讨论之后,设想如下:通过头盔确定需要到达的位置,使用两个胳膊的碰撞来决定时候需要进行瞬移操作。


首先,将控制移动的位置移动到头盔上面,在should update facing direction方法中,将当前头盔的朝向和箭头的朝向做对比,返回一个bool值。


Make Rotator:第一个参数是左右旋转,第二个参数是最高点,第三个参数是偏离值;之后返回的是一个旋转体。


下面这个函数是进行抛物线与地面相交的判断:start Pos:表示起始位置,launch Velocity:表示发出射线的速度(包括方向),Object types数组表示,需要计算碰撞的类型。输出值返回了一个碰撞信息,需要通过break hit result方法获取想要的碰撞信息。


Break hit result方法:


  • 是否发生了被拦截的碰撞
  • 是否是初次碰到
  • 表示指示起始时间和结束时间(0-1)
  • 从发出的地方到碰撞地方的长度
  • 碰撞发生的位置
  • 冲击点,随着碰撞物体表面变化的点
  • 碰撞点的法向
  • 和上面那个相同
  • 碰到的物理材质
  • 轨迹碰到的actor
  • 轨迹碰到的原始物体
  • 碰到的骨骼的名字
  • 碰到的最初项目的列表
  • 如果碰撞是三角面片和地形,返回索引值
  • 轨迹开始的方向
  • 轨迹结束的方向

因为不能移动到垂直平面上:


在nav上投射出玩家需要处于的位置


这里的输入point就接到前面输出的laocation上,之后返回一个映射得到的location,就是在nav网格上处于的位置。


图中绿色的区域就是navigation网格。

猜你喜欢

转载自blog.csdn.net/little_raspberry/article/details/80292938