Agregué CDN apropiados para aframe, extras de aframe, complemento de refundición
<script src="https://aframe.io/releases/1.1.0/aframe.min.js"></script> <script src="https://recast-api.donmccurdy.com/aframe-inspector-plugin-recast.js"></script> <script src="https://cdn.jsdelivr.net/gh/donmccurdy/aframe-extras@v6.0.1/dist/aframe-extras.min.js">/script>,añadí mi entidad de malla de navegación dentro de <a-scene>
<a-entity id="wallmesh" position="0 0.769 0" gltf-model="navmesh/nav3.glb" visible="false"></a-entity>y para jugador o cámara probé esto,
<a-entity id="player-rig" > <a-entity id="player" networked="template:#avatar-template;attachTemplateToLocal:false;" movement-controls="constrainToNavMesh: true" camera="active:true;" position="-27 2.5 24" look-controls spawn-in-circle="radius:2" rotate-with-camera > <a-entity id="player-body" networked="template:#body; attachTemplateToLoacal:false;" position="-.17 -.88 0"></a-entity> </a-entity> </a-entity>Pero mi cámara no se movió sola y se generó en una posición diferente a la esperada. Por favor, ayúdame si encuentras algo incorrecto en este enfoque...
Intente derribar la versión de A-Frame a 1.0.4 y vea si funciona.
El componente Extras no se actualizó recientemente y lo primero que noté es que el componente navmesh se rompió al pasar de la versión anterior. Creo que tiene que ver con la desaprobación de Geometry en Three.js.
Pruebe la placa de caldera XR de Ada Rose Cannon y tome la restricción de malla de navegación simple.
El hecho de que su cámara esté en el lugar equivocado y no se mueva sugiere que podría estar enfrentando este problema, por el cual A-Frame no se da cuenta de que tiene una cámara definida por el usuario y agrega una cámara predeterminada, que se hace cargo. https://github.com/aframevr/aframe/issues/3921
En la consola, ingrese
document.querySelector('[camera]')Si devuelve 2 elementos, es casi seguro que tenga el problema.
La solución más simple es asegurarse de declarar su cámara definida por el usuario antes de cualquier etiqueta <template> en su escena a (está usando A-Frame en red, así que supongo que tiene algunos de estos)
Alternativamente, algo como este código en uno de sus componentes probablemente también solucionaría el problema.
const sceneEl = document.querySelector('a-scene') if (sceneEl.camera.el.id !== 'player') { console.log("Deleting unwanted A-Frame default camera") const wrongCameraEntity = this.el.sceneEl.camera.el; const cameraEntity = document.getElementById('player'); cameraEntity.setAttribute('camera', 'active', true); wrongCameraEntity.parentEl.removeChild(wrongCameraEntity); }