Я добавляю некоторые чистые сцены, чтобы устранить утечки памяти, и я немного запутался в правильном способе удаления помощника стрелки. (С использованием Three.js оборотов 68)Каков правильный способ удалить THREE.ArrowHelper() из сцены?
Предполагая, что я делаю это, чтобы создать его:
var thisArrow = new THREE.ArrowHelper(dir, origin, length, hex, headLength, headWidth));
scene.add(thisArrow);
При попытке удалить его, как это:
scene.remove(thisArrow);
Это работает отлично. Но я предполагаю, что у меня возникает утечка памяти, потому что я не выбрал геометрию. (Я создаю много стрел в течение долгого времени, так что это имеет значение)
Но когда пытаешься избавиться от геометрии (зная, что стрелка действительно линия и конус), как это:
thisArrow.line.geometry.dispose();
thisArrow.cone.geometry.dispose():
Я получаю ошибки webGL:
[Warning] WebGL: INVALID_OPERATION: drawElements: no ELEMENT_ARRAY_BUFFER bound ([native code], line 0)
Должен ли я также избавиться от самой стрелки? Каков правильный способ сделать это.
Спасибо!
Джефф
Как альтернативный подход или обход, рассмотрите возможность создания пула стрелок и повторного использования их. – WestLangley