Подтвердить что ты не робот

Three.js: Объекты объектов доступа по имени или идентификатору

Я генерирую объекты из массива, который я определил как это (это не ограничивается этими тремя):

var links = [['Linkedin','img/linkedin.png','-300','-230', '600'],
             ['Google+', 'img/google.png',  '0',   '-230', '600'],
             ['Twitter', 'img/twitter.png', '300', '-230', '600']];

Теперь он проходит через каждый цикл для создания и добавления объектов к сцене на Three.JS следующим образом:

$.each(links, function(i, item) {
    var thisItemTexture = THREE.ImageUtils.loadTexture(item[1]);
    thisItemGeo = new THREE.CubeGeometry(60, 60, 60,1 ,1 , 1);
    thisItemMat = new THREE.MeshBasicMaterial({map: thisItemTexture });
    thisItem =    new THREE.Mesh(thisItemGeo, thisItemMat);
    scene.add(thisItem);
    thisItem.position.x = item[2];
    thisItem.position.y = item[3];
    thisItem.position.z = item[4];
    thisItem.castShadow = true;
    thisItem.receiveShadow = true;          
});

Вопрос: Как я могу получить доступ к объектам, которые я создал в каждом цикле выше?

4b9b3361

Ответ 1

Вы можете сделать это:

myObject.name = "objectName";
...
var object = scene.getObjectByName( "objectName" );

или для рекурсивного поиска графа сцены

var object = scene.getObjectByName( "objectName", true );

Кроме того, вы можете искать по ID.

var object = scene.getObjectById( 4, true );

three.js r.61