我正在使用mrtk 2.1创建一个VR应用程序,并希望用户在坐着或站立时都处于相同的高度。 当坐在座位上时,相机太低。
我可以调整包含MainCamera的MixedRealityPlayspace的高度,但是在使用传送功能后会重置。 此外,从Github Post中了解到,无法通过mrtk访问MainCamera和MixedRealityPlayspace夹心之间的偏移,因此很难计算正确的高度。 这似乎不是正确的方法。
即使在坐着游戏时,我如何确保用户在游戏中始终保持正确的头部高度?
答案 0 :(得分:0)
我已经继续提出以下功能请求: https://github.com/microsoft/MixedRealityToolkit-Unity/issues/6786
以下未测试的解决方法:
与不同的MRTK贡献者进行了交谈,觉得您可能需要在运行时进行此转换配置。尝试在编辑器/场景层次结构中执行此操作可能会遇到问题,因为人们不确定主摄像头的父级是否设置为MixedRealityPlayspace,而不管主摄像头是否是MixedRealityPlayspace的孙代。
答案 1 :(得分:0)
好的,我找到了适合我的解决方案。 我使用以下代码来向上或向下移动MixedRealityPlayspace以达到所需的玩家高度。(如果要使用此代码,请确保将您的mixedRealityPlayspace GameObject标记为“ Player”)
var mixedRealityPlayspace = GameObject.FindGameObjectsWithTag("Player")[0].transform;
var camHeight = mainCamera.transform.position.y;
var adjustement =wantedPlayerHeight-camHeight ;
mixedRealityPlayspace.position= new Vector3(mixedRealityPlayspace.position.x,mixedRealityPlayspace.position.y+adjustement, mixedRealityPlayspace.position.z);
我在场景开始时以及在MRTK Teleport system
的本文档中描述的OnTeleportCompleted事件中将其调用