В кадре нет атрибута mesh.geometry.vertices в версии 0.3.0

#aframe

#aframe

Вопрос:

Я пытаюсь воссоздать руководство по игре из документации версии 0.2.0, используя 0.3.0: https://aframe.io/docs/0.2.0/guide/building-an-advanced-scene.html

Компонент collider использует следующее утверждение:

 var vertices = mesh.geometry.vertices;
  

В версии 0.3.0 он возвращает ошибку:

 vertices undefined
  

Если вы печатаете

 console.log(mesh.geometry);
  

В версии 0.2.0 вершины возвращаются как атрибут геометрии, но в 0.3.0 такого атрибута нет.

Как мне обойти это?

Ответ №1:

Теперь по умолчанию используется BufferGeometry .

Вы можете отказаться: <a-entity geometry="buffer: false">

Или старые данные до преобразования также сохраняются this.geometry.metadata .

Комментарии:

1. Если все, что вам нужно, это вершины, вы также можете получить их из BufferGeometry через geometry.attributes.position.array . Это будет плоский массив, например [x1, y1, z1, x2, y2, z2, ...] . Пример .