Я хотел знать, как создать компонент Aframe для любого объекта, который определяет, виден ли объект камере, например атрибут bool.
"isSeen"= true || false
Я пробовал использовать тригонометрию (зная вращение камеры и положение сущностей), но у меня ничего не вышло.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Как насчет усики: проверка, находится ли точка (x, y, z) в поле зрения камеры.
Код вполне просто. Чтобы использовать его в кадре, вы можете создать компонент, который будет проверять, видна ли точка в каждом цикле рендеринга:
AFRAME.registerComponent('foo', {
tick: function() {
if (this.el.sceneEl.camera) {
var cam = this.el.sceneEl.camera
var frustum = new THREE.Frustum();
frustum.setFromMatrix(new THREE.Matrix4().multiplyMatrices(cam.projectionMatrix,
cam.matrixWorldInverse));
// Your 3d point to check
var pos = new THREE.Vector3(x, y, z);
if (frustum.containsPoint(pos)) {
// Do something with the position...
}
}
}
}
Зацените это в моем рабочий пример
@FelixJely, я попытаюсь привести пример после работы, но я бы использовал .intersectsBox (), чтобы проверить, перемещается ли камера fov на элемент, и в то же время проверить центральную точку (когда объект находится в FOV, не пересекающийся с границами)
Спасибо ! Это вроде работы, когда я добавил позицию объекта "var pos = new THREE.Vector3 (this.el.getAttribute (" position "). X, this.el.getAttribute (" position "). Y, this.el.getAttribute ("position"). z); "но он не выделяет элементы, которые имеют часть в сцене (все вокруг углов), как увеличить выделение?