как я могу сделать это возможным?
Один из возможных подходов, который вы можете попробовать, - это использование CSS2DRenderer
, как показано в этом официальном примере: https://threejs.org/examples/css2d_label
При проверке кода вы увидите, что метки отображаются через HTML / CSS. Поэтому, когда элемент DOM перетаскивается на холст и опускается, вы оборачиваете его в экземпляр CSS2DObject
и добавляете его в граф сцены как дочерний элемент вашего целевого меня sh.
Если вам нужно чтобы определить, какой из sh был наведен курсором мыши, вы можете использовать basi c raycasting. Это означает, что вы можете вычислить координаты мыши в слушателе событий mouse
следующим образом:
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
, а затем использовать эти координаты для настройки Raycaster следующим образом:
raycaster.setFromCamera( mouse, camera );
Затем готов к испытаниям на пересечение с вашими сценами.