Comment les éléments de la scène.les enfants dans threeJS peut être consulté?
J'ai ajouté quelques objets à ThreeJS scène (à l'aide de scene.add(object)
). Je sais que le nom de l'objet et vous voulez juste pour aller chercher de l'indice de la scène.les enfants.
J'ai essayé d'utiliser scene.children.indexOf("objectName")
mais elle renvoie -1 index. Quelqu'un peut-il suggérer que puis-je faire?
Grâce
OriginalL'auteur harman052 | 2013-08-22
Vous devez vous connecter pour publier un commentaire.
ou à la recherche de manière récursive le graphe de scène
Alternativement, vous pouvez effectuer une recherche par ID.
three.js r.60
var object = scene.getObjectByName( "objectName" );
à alert() et a obtenu "undefined". Depuis, je ne sais pas beaucoup sur ThreeJS, mais j'ai trouvé que les objets sont étagés enscene.children
. Chaque objet que nous ajoutons à la scène deviennent ajouter à la fin de la scène.les enfants. J'ai donc écrit ce code:var lastIndex = scene.children.length - 1; endElement = scene.children[lastIndex];scene.remove(endElement);
Cela supprime le dernier élément que j'ai dessinée. J'ai besoin de votre aide pour récupérer l'ID d'un élément de la scène.les enfants avec mention de l'objet nom. Merci.Avez-vous réglé le paramètre nom de l'objet que vous avez ajouté à la scène? Un exemple de code serait utile dans le diagnostic de l'erreur 🙂
Votre "accepter" ce taux est égal à zéro. Rappelez-vous d'accepter les réponses en cliquant sur la case à cocher en regard de la réponse. Le faire pour d'autres personnes qui ont répondu à vos questions, aussi. Si votre programme ne fonctionne pas, alors s'il vous plaît faire un nouveau post, montrer votre code, et de poser une question spécifique. Je vous remercie.
OriginalL'auteur WestLangley
Vous avez une alerte de texte comme undefined parce que vous êtes de retour d'un objet n'est pas un
value/text
. Vous devez d'alerte quelque chose commescene.getObjectByName( "objectName" ).name
ouscene.getObjectByName( "objectName" ).id
je crois.OriginalL'auteur user2483894
Je crois que ce qui peut répondre à votre question est la suivante code que j'utilise pour nettoyer la scène:
de cette façon, je n'ai pas besoin d'accéder à un élément par son nom ou son id. L'objet sont tout simplement extraite à partir du tableau avec un index, donc c'est comme
scene.children[i]
.OriginalL'auteur alexlomba87
Pertinentes docs: getObjectById, getObjectByName. Une remarque importante à partir de
getObjectByName
:Cela pourrait être la raison pour laquelle vous
undefined
. Aussi, si vous obtenezundefined
, en essayant d'accéder à.name
ou.id
va lever une erreur. Si vous avez été d'obtenir un objet de dos vous voyez quelque chose comme "[object object]" dans l'alerte.Une autre remarque importante, j'ai appris à la dure, c'est que la valeur que vous avez besoin pour passer à
getObjectById
estobject.id
, et pasobject.uuid
. Aussi,object.id
est essentiellement juste l'index de laobject
dans lechildren
tableau.Mettant tous ensemble:
OriginalL'auteur feus4177