J'utilise trois.js pour faire un avion et mettre des boîtes dessus
J'ai besoin d'enlever toutes les cases parfois. Donc, j'essaie de le faire avec le code suivant: / Ceci tue chaque objet qui n'est pas l'avion ni la caméra; -) em> / p> Il supprime certaines cases, mais pas toutes = (
Comment puis-je supprimer toutes les cases?
Salutations, Josà © P> P>
3 Réponses :
Vous devez utiliser! == au lieu de! = (c'est un peu plus rapide). Avez-vous essayé de passer à travers votre boucle et de vérifier les enfants de la scène après cela? Peut-être que vous avez ajouté des boîtes à l'avion comme enfants qui ne seront pas supprimés par cette boucle. P>
Bonne idée. Ce n'était pas le problème, mais merci de toute façon pour l'idée de M. @sebastian Sachtleben. Les salutations
Vous devez revenir à l'avant, pas avant de revenir, lors de la suppression des objets de tableau comme celui-ci.
var obj, i; for ( i = scene.children.length - 1; i >= 0 ; i -- ) { obj = scene.children[ i ]; if ( obj !== plane && obj !== camera) { scene.remove(obj); } }
Tu l'as eu! Merci @crazycatz !!! = D = d = d = d = d = d = d
@CRAZYCATZ La réponse est correcte, bien sûr, mais nous sommes maintenant en 2016 et au lieu de l'itération manuelle, nous ne pouvons qu'appeler .slice () code> et itérer sur la copie de tableau:
scene.children.slice().forEach(function(obj) { scene.remove(obj); })
HM, mais comment supprimer un enfant exact? Pour certaines raisons, cela ne fonctionne pas pour moi scène.children [2] .children.foreach (i => scène.remove (i)) et cela ne fonctionne pas trop scène.Retirer (Scène.getObjectbyName ("Earth_marker"))
Vous ne devez pas appeler votre objet var. C'est un mot-clé réservé pour la définition réelle de l'objet.
L'objet devrait être bien, l'objet est réservé (avec capital o)
ce n'est pas le problème ... = (. @ ama2 a raison
Indépendamment, @Flavorscape est juste en ce sens que vous ne devriez pas laisser la sensibilité casse au hasard. Nommez-vous simplement quelque chose d'autre quand même i>.