VRTK_强制瞬移/传送
- 前言
- 配置
- 代码
前言
在使用VRTK制作虚拟仿真项目的时候,会遇到强制头盔至目标点的功能
VRTK内有封装好的移动方法。
VRTK_BasicTeleport脚本内的方法ForceTeleport()
配置
需要配置的传送组件
代码
本文代码是直接可以其他脚本调用,把传送的目标位置赋值给ForceTeleport方法即可,
GetRotation方法则是让瞬移后的视角也朝向目标点的朝向。
如果有需要可以直接使用Vector3代替目标点。
public VRTK_BasicTeleport vRTK_BasicTeleport;#region 强制瞬移public void ForceTeleport(Transform tfr){//vRTK_BasicTeleport.ForceTeleport(tfr.position);Teleport(tfr);//vRTK_BasicTeleport.Teleport(tfr.eulerAngles);}void Teleport(Transform trans){Quaternion tempQ = Quaternion.Euler(trans.eulerAngles);vRTK_BasicTeleport.ForceTeleport(trans.position, GetRotation(trans));}Quaternion GetRotation(Transform trans){float offset = (m_playArea != null && m_headset != null ? m_playArea.eulerAngles.y - m_headset.eulerAngles.y : 0f);return Quaternion.Euler(0f, trans.eulerAngles.y + offset, 0f);}#endregion