这个问题的原因是导航网格较大或过于复杂,可能会使特工在顶点处掉落。你可以尝试以下解决方案:
1.将导航网格尺寸缩小,保持简单。
2.在场景中添加地面碰撞器,这样你的特工就不会掉落了。例如:
<a-entity id="ground" geometry="primitive: plane; width: 100; height: 100" material="color: #7BC8A4" static-body></a-entity>
static-body属性可以防止物体掉落。
- 另一个解决方案是在物体上添加相对地面的偏移,以在掉落时将其恢复到地面上部分。例如:
AFRAME.registerComponent('fix-collision', {
init() {
this.el.addEventListener('collide', (e) => {
setTimeout(() => {
this.el.object3D.position.y += 0.2;
}, 100);
});
}
});
最后,将此组件添加到物体上。
<a-entity id="agent" extras-agent fix-collision></a-entity>