Recherche…


Introduction

Une scène est représentée par l'élément <a-scene> . La scène est l'objet racine global et toutes les entités sont contenues dans la scène.

La scène hérite de la classe Entity et hérite donc de toutes ses propriétés, de ses méthodes, de la possibilité d'attacher des composants et du comportement à attendre pour tous ses nœuds enfants (par exemple, <a-assets> et <a-entity> ). charger avant de lancer la boucle de rendu.

Paramètres

Paramètre Détails
comportements Tableau de composants avec des méthodes de ticks qui seront exécutés sur chaque frame.
caméra Caméra active trois.js.
Toile Référence à l'élément canvas.
isMobile Que l'environnement soit détecté ou non comme mobile
object3D Objet THREE.Scene.
moteur de rendu THREE.WebGLRenderer actif.
rendreStarted Si la scène est rendue.
effet Renderer for VR créé en transmettant le moteur de rendu actif dans THREE.VREffect.
systèmes Systèmes instanciés.
temps Disponibilité globale de la scène en quelques secondes.

Remarques

Méthodes

prénom La description
enterVR Passez en mode de rendu stéréo et transférez le contenu vers le casque. Doit être appelé dans un gestionnaire d'événement généré par l'utilisateur, tel que click . la première fois qu'une page entre en VR.
exitVR Passez en mode de rendu mono et arrêtez de présenter le contenu sur le casque.
recharger Rétablir la scène dans son état d'origine.

ÉVÉNEMENTS

prénom La description
entrer-vr L'utilisateur a entré VR et le casque a commencé à présenter le contenu.
sortie-vr L'utilisateur a quitté VR et le casque a cessé de présenter le contenu.
chargé Tous les nœuds ont été chargés.
renderstart La boucle de rendu a démarré.

Connexion de composants de scène

Des composants peuvent être attachés à la scène ainsi que des entités. A-Frame est livré avec quelques composants pour configurer la scène:

Composant Détails
incorporé Supprimez les styles plein écran du canevas.
brouillard Ajouter du brouillard
Raccourcis clavier Activer / désactiver les raccourcis clavier.
inspecteur Injecter l'inspecteur A-Frame.
Statistiques Activer / désactiver les statistiques de performance.
vr-mode-ui Activer / désactiver l'interface utilisateur pour entrer et sortir de VR.
déboguer Permet la sérialisation de composant à DOM.

Utilisation de scènes incorporées

Si vous souhaitez utiliser un contenu WebVR mélangé à du contenu HTML, par exemple lorsque vous créez un contenu de clé de présentation étendue, vous pouvez utiliser la balise embedded . Lorsque vous utilisez ceci, il est possible de regarder à l'intérieur du contenu à 360 ° à l'aide du gyroscope de votre smartphone ou de cliquer et de glisser sur l'ordinateur.

<script src="https://aframe.io/releases/0.5.0/aframe.min.js"></script>
<div class="vrcontent">
  <a-scene embedded>
    <a-assets>
      <img id="sky" src="https://c1.staticflickr.com/5/4248/34705881091_37b5cf2d28_o.jpg" alt="" />
    </a-assets>

    <a-sky src="#sky"></a-sky>
  </a-scene>
</div>

<div class="overlay">
  <button class="calltoaction">Click me!</button>
</div>

<div class="content">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deleniti animi aliquid architecto quibusdam ipsum, debitis dolor mollitia. Quidem, cumque quos porro doloribus iure dolore illum, qui rem asperiores unde laboriosam.Dolorum tempora quam eveniet ea recusandae deserunt, velit similique. Cum sunt rerum beatae officiis qui sed molestiae et ullam quasi, harum maxime vel, aspernatur quidem molestias. Provident quae illo harum?Sunt expedita, repellat saepe vel accusamus odio. Alias, obcaecati harum earum inventore asperiores quaerat, sit autem nostrum. Sunt illo numquam, temporibus pariatur optio nam, expedita necessitatibus aliquid nemo maxime nisi. Praesentium corporis, ea sunt asperiores, recusandae animi, rem doloribus, possimus cum laudantium libero. Maiores a, iusto aspernatur reiciendis ratione sunt nisi, rem, quasi temporibus ullam non. Neque repellat facilis illo.Quibusdam reiciendis sunt tempora fuga deleniti, molestias temporibus doloremque. Nam sed consequatur consectetur ut tempora a nesciunt, perspiciatis dolorem reprehenderit modi enim at veritatis, excepturi voluptate quod, voluptatibus voluptas. Cum.Debitis, nesciunt, repellat voluptatem sapiente incidunt quidem asperiores reprehenderit vero quisquam placeat sunt voluptatibus velit. Consectetur atque voluptates, repellendus facere sequi ea totam quia quis non incidunt. Soluta, aut, provident. Eos sequi itaque dolorem atque ex id maiores dolor eaque libero iste deserunt ea voluptate minima cum laboriosam, qui animi, fuga suscipit necessitatibus vero, autem blanditiis, totam nulla. Quo, et. Quisquam commodi voluptatum dolorem aspernatur, distinctio et ullam laborum laboriosam quo nisi, praesentium quaerat ab excepturi. Illum harum doloremque, accusantium, beatae culpa assumenda laboriosam, quos mollitia aperiam dolorem praesentium minus!</p>
</div>

Déboguer

Le composant de débogage permet la sérialisation de composant à DOM.

<a-scene debug></a-scene>

Sérialisation de composant à DOM

Par défaut, pour des raisons de performances, A-Frame ne met pas à jour le DOM avec les données de composant. Si nous ouvrons l'inspecteur DOM du navigateur, nous verrons que seuls les noms des composants (et non les valeurs) sont visibles.

<a-entity geometry material position rotation></a-entity>

A-Frame stocke les données du composant en mémoire. La mise à jour du DOM prend du temps processeur pour convertir les données de composant internes en chaînes. Si nous voulons voir la mise à jour du DOM à des fins de débogage, nous pouvons attacher le composant de débogage à la scène. Les composants rechercheront un composant de débogage activé avant d'essayer de sérialiser vers le DOM. Nous pourrons alors afficher les données des composants dans le DOM:

<a-entity geometry="primitive: box" material="color: red" position="1 2 3" rotation="0 180 0"></a-entity>

Assurez-vous que ce composant n'est pas actif dans la production.

Sérialisation manuelle dans DOM

Pour sérialiser manuellement vers DOM, utilisez Entity.flushToDOM ou Component.flushToDOM:

document.querySelector('a-entity').components.position.flushToDOM();  // Flush a component.
document.querySelector('a-entity').flushToDOM();  // Flush an entity.
document.querySelector('a-entity').flushToDOM(true);  // Flush an entity and its children.
document.querySelector('a-scene').flushToDOM(true);  // Flush every entity.

Exécution de scripts de contenu sur la scène

La méthode recommandée consiste à écrire un composant et à l'attacher à l'élément de la scène.
La scène et ses enfants seront initialisés avant ce composant.

AFRAME.registerComponent('do-something', {
  init: function () {
    var sceneEl = this.el;
  }
});
<a-scene do-something></a-scene>

Si, pour une raison particulière, vous préférez ne pas écrire un composant dédié, vous devez attendre que la scène ait fini de s'initialiser et de joindre:

var scene = document.querySelector('a-scene');

if (scene.hasLoaded) {
  run();
} else {
  scene.addEventListener('loaded', run);
}

function run () {
  var entity = scene.querySelector('a-entity');
  entity.setAttribute('material', 'color', 'red');
}


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow