// 加载游戏地图
async function loadGameMap() {
const { scene: object } = await loadGLTF("/model/工厂2/scene.gltf");
object.scale.set(2.2, 2.2, 2.2);
object.rotateY(getAngle(90));
object.position.set(-4, 0, 0);
document.addEventListener("click", (e) => {
modelOnClick(e, object);
});
scene.value?.add(object);
}
// 点击模型,打印出坐标
function modelOnClick(event: MouseEvent, object: THREE.Group) {
const mouse = new THREE.Vector2(
(event.clientX / element.value.offsetWidth) * 2 - 1,
-(event.clientY / element.value.offsetHeight) * 2 + 1
);
const raycaster = new THREE.Raycaster();
raycaster.setFromCamera(mouse, camera.value!);
const intersects = raycaster.intersectObject(object, true);
if (intersects.length <= 0) return void 0;
const selected = intersects[0].object;
console.log(intersects[0].point, "===");
// if (selected instanceof THREE.Mesh) {
// selected.material = new THREE.MeshStandardMaterial({
// color: "red",
// metalness: 1,
// roughness: 0.7
// });
// }
}
博主开发了一个浏览器aweb123.com