Three.js raycaster.intersectObjects получили неправильные результаты [дубликат]

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

3
задан Fredric 9 October 2013 в 14:53
поделиться

1 ответ

Очевидный ложный результат, который вы видите, связан с тем, что, хотя вы установили позицию ящика, он еще не обновил матрицу преобразования мира. Это обычно происходит только перед рендерингом.

Если вы переместите тест raycast после первого рендера (или вызовите updateWorld() вручную), вы не получите удар.

2
ответ дан Rob Agar 19 August 2018 в 10:01
поделиться
  • 1
    Роб !. Вот и все. Большое спасибо. :). Fiddle также обновляется – Fredric 9 October 2013 в 14:34
Другие вопросы по тегам:

Похожие вопросы: