callBack方式实现threejs点击事件Raycaster

我用的的示例类发方式来初始化场景。

类里面定义点击方法。

initMouse(fun) {
    window.addEventListener("click", (event) => {
      this.clickObject(event, fun);
    });
  }
  // 鼠标事件
  clickObject(event, fun) {
    // 计算点击位置的归一化设备坐标
    const mouse = new THREE.Vector2();
    mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
    mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;
    // 创建射线投射器
    const raycaster = new THREE.Raycaster();
    raycaster.setFromCamera(mouse, this.camera);
    // 获取与射线相交的物体数组
    const intersects = raycaster.intersectObjects(this.scene.children, true);
    if (intersects.length > 0) {
      // intersects[0].object 是与射线相交的第一个物体
      const clickedObject = intersects[0].object;
      // 这里可以进一步处理点击的物体
      fun(intersects[0].object);
      // clickedObject.material.color.set(0xff0000); // 设置点击物体的颜色为红色
    }
  }

使用时调用initMouse传入回调函数。

 ffThree.initMouse(callBack);

function callBack(obje) {
  console.log("obje为选中的物体 下面写对选中物体做的事情");
  obje.material.color.set(0xff0000);
}

相关推荐

  1. vue中实现动态事件

    2024-07-12 13:34:02       30 阅读
  2. 在 Swift 中,UILabel添加事件方法

    2024-07-12 13:34:02       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 13:34:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 13:34:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 13:34:02       58 阅读
  4. Python语言-面向对象

    2024-07-12 13:34:02       69 阅读

热门阅读

  1. RPC与REST

    2024-07-12 13:34:02       20 阅读
  2. Opencv中的直方图

    2024-07-12 13:34:02       17 阅读
  3. python 如何处理图片 举例说明

    2024-07-12 13:34:02       16 阅读
  4. DangerWind-RPC-framework---四、SPI

    2024-07-12 13:34:02       20 阅读
  5. OpenCV:解锁计算机视觉的魔法钥匙

    2024-07-12 13:34:02       19 阅读
  6. 使用sklearn的基本流程

    2024-07-12 13:34:02       20 阅读
  7. qt udp 只创建服务端链接

    2024-07-12 13:34:02       24 阅读
  8. 开发不认可bug策略

    2024-07-12 13:34:02       22 阅读
  9. 深入理解sklearn中的模型参数优化技术

    2024-07-12 13:34:02       23 阅读
  10. Android C++系列:Linux守护进程

    2024-07-12 13:34:02       20 阅读
  11. hive中reverse函数

    2024-07-12 13:34:02       21 阅读
  12. 03-NoSQL之Redis配置与优化

    2024-07-12 13:34:02       15 阅读
  13. 编程是学什么:探索编程世界的四大核心领域

    2024-07-12 13:34:02       19 阅读
  14. npm error code 1

    2024-07-12 13:34:02       18 阅读
  15. npm link,npm unlink调试本地开发npm包

    2024-07-12 13:34:02       18 阅读
  16. Dubbo之SPI、Adaptive机制详解

    2024-07-12 13:34:02       21 阅读