fix pointer visible click

This commit is contained in:
aarizona 2024-08-29 10:54:30 +03:00
parent 117db0a040
commit 252261aab9
1 changed files with 8 additions and 3 deletions

View File

@ -281,14 +281,14 @@ watch(() => sidebar, () => {
if (!target) return if (!target) return
const el = seekByName(scene.value, `${sidebar.id_clickable}_clickable`); const el = seekByName(scene.value, `${sidebar.id_clickable}_clickable`);
if (el) { if (el) {
// el.visible = false; el.visible = false;
(controls.value as any).maxDistance = 10; (controls.value as any).maxDistance = 10;
(controls.value as any).minDistance = 1; (controls.value as any).minDistance = 1;
const target_vector = new Vector3(); const target_vector = new Vector3();
el.getWorldPosition(target_vector); el.getWorldPosition(target_vector);
controls_targetto.value = target_vector; controls_targetto.value = target_vector;
camera_rotatetoto.value = new Quaternion(Math.PI*0.5, Math.PI*0.5, Math.PI*0.5, Math.PI*0.5) camera_rotatetoto.value = new Quaternion(Math.PI * 0.5, Math.PI * 0.5, Math.PI * 0.5, Math.PI * 0.5)
} }
} }
}, { deep: true }) }, { deep: true })
@ -365,7 +365,12 @@ const clickEvent = (event: MouseEvent) => {
const clickable_objects = seekAllByName(scene.value, '_clickable'); const clickable_objects = seekAllByName(scene.value, '_clickable');
const intersects = raycaster.value.intersectObjects(clickable_objects); const intersects = raycaster.value.intersectObjects(clickable_objects);
const names = intersects.map(el => (el.object.parent ? el.object.parent.name : el.object.name) ?? false).filter(Boolean) // const intersects_visible = intersects.filter(el=>el.visi)
const names = intersects
.map(el => (el.object.parent ? el.object.parent.name : el.object.name) ?? false)
.filter(el =>
clickable_objects.find(item => item.name == el).visible == true ?? false
).filter(Boolean)
if (names.length) { if (names.length) {
sidebar.open(parseInt(names[0].replace('_clickable', ''))) sidebar.open(parseInt(names[0].replace('_clickable', '')))
} }