Поэтому я хочу проверить, находятся ли узлы в определенном диапазоне, и если да, нарисуйте их или нет.
Узлы проверяются внутри таймера, поэтому создается поток. Единственная проблема, которая возникает сейчас, заключается в том, что метод setRenderable () должен вызываться из потока пользовательского интерфейса. Так есть ли способ обойти это? Это нужно для обновления через определенный интервал, поэтому я создаю таймер.
public void updateNodes()
{
Camera camera = arFragment.getArSceneView().getScene().getCamera();
timer = new Timer();
timer.schedule(new TimerTask(){
int last = 0;
int copy_last = 0;
@Override
public void run(){
Vector3 camera_position = camera.getWorldPosition();
// We're checking all nodes for distance between them
for(Node al : copied_nodes_list){
if(last<copy_last) last++;
else if(countDistanceOfNodes(al,camera_position)<3.0 && copy_last >= last) {
al.setRenderable(andyRenderable);
last++;
copy_last = last;
}
else {
al.setRenderable(andyRenderable);
}
}
last = 0;
}
},0,250);
}