关于VR禁用头盔Head的位置跟随(旋转会保留)

本文介绍了一种在Unity中禁用VR头盔位置追踪的方法,通过设置UnityEngine.VR.InputTracking.disablePositionalTracking为true,可以实现仅保留头盔旋转功能而禁用其位置移动功能的需求。

近段时间有个项目有个需求是场景里一个模拟人体,本体是坐于沙发不能移动的,也就是说需要保留头盔旋转的功能的同时,禁用头盔Head的位置功能

查了查资料和API发现了个方法: 

UnityEngine.VR.InputTracking.disablePositionalTracking = true;

这样位置跟随功能就给禁用掉了。但是手柄和头盔的位置会被初始化,需要注意一下

Assets\Scripts\Basic\Net\Commands\ClientCommand\RecvRecenterCommand.cs(9,15): error CS0246: The type or namespace name 'Valve' could not be found (are you missing a using directive or an assembly reference?) using UnityEngine; using System.Collections.Generic; using Basic.Managers; using Basic.Net.Protocol; using Basic.Net.Sockets; using System; using PureMVC.Patterns; using UnityEngine.XR; using Valve.VR; [Cmd(ProtocolCodes.VR_RECENTER, typeof(bool), "VR头盔校准", false)] public class RecvRecenterCommand : Command { public UIProxy proxy { get { return Facade.Instance.RetrieveProxy(UIProxy.NAME) as UIProxy; } } public override void AddEvents() { ProtocolManager.instance.AddProtocolListent(ProtocolCodes.VR_RECENTER, Recenter); } private void Recenter(params object[] args) { int errorCode = (int)args[0]; bool recvBool = (bool)args[1]; if (UnityEngine.XR.XRDevice.model.Contains("VIVE") || UnityEngine.XR.XRDevice.model.Contains("vive")) RecenterHTC(); else if (UnityEngine.XR.XRDevice.model.Contains("htc") || UnityEngine.XR.XRDevice.model.Contains("htc")) RecenterHTC(); else RecenterXR(); } void RecenterHTC() { Valve.VR.OpenVR.Chaperone.ResetZeroPose(Valve.VR.ETrackingUniverseOrigin.TrackingUniverseStanding); Valve.VR.OpenVR.Compositor.SetTrackingSpace(Valve.VR.ETrackingUniverseOrigin.TrackingUniverseStanding); } void RecenterXR() { List<XRInputSubsystem> subsystems = new List<XRInputSubsystem>(); SubsystemManager.GetInstances<XRInputSubsystem>(subsystems); for (int i = 0; i < subsystems.Count; i++) { subsystems[i].TryRecenter(); } } } unity打包到Linux平台时报错2019.4.17版本
06-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值