在运行时设置相机位置与 navmesh 冲突
Setting camera position at runtime collides with navmesh
我正在设计一栋三层公寓的演练。导航约束是通过覆盖每个楼层(包括楼梯)的导航网格完成的。
我想提供一个快捷方式,用户可以通过点击按钮跳转到相应的楼层。到目前为止,位置的改变是有效的,但一旦玩家开始行走,他们就会被拉回与点击按钮之前相同的 Y 位置(x 和 z 位置改变有效)。例如,从一楼跳到三楼是可行的,但一旦玩家开始行走,他们就会再次回到一楼。
position.set 值不是随机选择的——我在加载检查器中检查了 camRig 在三楼的位置并使用了这些值,所以我不确定为什么这不起作用.有什么办法可以避免这个问题吗?
编辑:我做了一个重现问题的简单示例:https://glitch.com/~fearless-resolution
这是我的代码:
<a-entity id="camRig"
movement-controls="speed: 0.3;
constrainToNavMesh: true"
position="-12.5 0 -2"
rotation="0 270 0">
<a-entity id="cam" camera
look-controls="pointerLockEnabled: true;"
position="0 2.4 0"></a-entity>
</a-entity>
<a-entity id="navmesh" gltf-model="#collider" nav-mesh position="0 0 0" scale="1.6 1.6 1.6" visible=„false“></a-entity>
<a-entity id="house" gltf-model="#apartment" position="0 0 0" scale="0.016 0.016 0.016"></a-entity>
document.querySelector("#changeFloorButton").addEventListener('click', function() {
document.querySelector("#camRig").object3D.position.set(-1, 4, 2);
});
我正在设计一栋三层公寓的演练。导航约束是通过覆盖每个楼层(包括楼梯)的导航网格完成的。
我想提供一个快捷方式,用户可以通过点击按钮跳转到相应的楼层。到目前为止,位置的改变是有效的,但一旦玩家开始行走,他们就会被拉回与点击按钮之前相同的 Y 位置(x 和 z 位置改变有效)。例如,从一楼跳到三楼是可行的,但一旦玩家开始行走,他们就会再次回到一楼。
position.set 值不是随机选择的——我在加载检查器中检查了 camRig 在三楼的位置并使用了这些值,所以我不确定为什么这不起作用.有什么办法可以避免这个问题吗?
编辑:我做了一个重现问题的简单示例:https://glitch.com/~fearless-resolution
这是我的代码:
<a-entity id="camRig"
movement-controls="speed: 0.3;
constrainToNavMesh: true"
position="-12.5 0 -2"
rotation="0 270 0">
<a-entity id="cam" camera
look-controls="pointerLockEnabled: true;"
position="0 2.4 0"></a-entity>
</a-entity>
<a-entity id="navmesh" gltf-model="#collider" nav-mesh position="0 0 0" scale="1.6 1.6 1.6" visible=„false“></a-entity>
<a-entity id="house" gltf-model="#apartment" position="0 0 0" scale="0.016 0.016 0.016"></a-entity>
document.querySelector("#changeFloorButton").addEventListener('click', function() {
document.querySelector("#camRig").object3D.position.set(-1, 4, 2);
});