您当前的位置: 首页 >  vr

暂无认证

  • 13浏览

    0关注

    93840博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【unity】【vr】如何让VR Body正确感应到手柄和头盔的位置

发布时间:2022-07-06 22:37:27 ,浏览量:13

【背景】

上一篇帖子我们成功实现了让Body整体自动补正和Head之间的位置,不至于出现长脖子的状况。 但是到此为止,还没有实现我们最终的VR身体。 要实现VR身体,需要将我们之前写的两只手和头部的Target与手柄和头盔的位置同步。 下面就介绍解决这个问题的具体方法。

【代码】

先在Hierarchy中导入Oculus的OVR插件。 在这里插入图片描述

在原来VR Rig脚本的基础上增加一个结构Map。 利用这个Map作为可以套用的一般方法。 来同步控制器头盔和游戏中两手以及头部的位置。

using System.Collections; using System.Collections.Generic; using UnityEngine; [System.Serializable] public class VRMap { public Transform vrTarget; public Transform rigTarget; public Vector3 trackingPositionOffset; public Vector3 trackingRotationOffset; public void Map() { rigTarget.position = vrTarget.TransformPoint(trackingPositionOffset); rigTarget.rotation = vrTarget.rotation*Quaternion.Euler(trackingRotationOffset); } } public class VRRig : MonoBehaviour { public VRMap head; public VRMap leftHand; public VRMap rightHand; public Transform headConstraint; public Vector3 headBodyOffset; // Start is called before the first frame update void Start() { headBodyOffset = transform.position - headConstraint.position; } // Update is called once per frame void LateUpdate() { transform.position = headConstraint.position + headBodyOffset; transform.forward = Vector3.ProjectOnPlane(headConstraint.up, Vector3.up).normalized; head.Map(); leftHand.Map(); rightHand.Map(); } } 

编译脚本后在Inspector中进行变量的关联配置。 在这里插入图片描述

【测试】

VR Body初具雏形,只是头和手的位置方向有点问题。 下一篇介绍如何补正角度来解决这个问题。 在这里插入图片描述

关注
打赏
1655258400
查看更多评论
立即登录/注册

微信扫码登录

0.0515s