zoukankan      html  css  js  c++  java
  • threejs Object的点击(鼠标)事件(获取点击事件的object)

    objects=[];
    raycaster = new THREE.Raycaster();
    mouse = new THREE.Vector2();
    //监听全局点击事件,通过ray检测选中哪一个object
    document.addEventListener("mousedown", (event) => {
      event.preventDefault();
      this.mouse.x = (event.clientX / this.renderer.domElement.clientWidth) * 2 - 1;
      this.mouse.y = - (event.clientY / this.renderer.domElement.clientHeight) * 2 + 1;
     
    
      this.raycaster.setFromCamera(this.mouse, this.camera);
      this.scene.children.forEach(child => {
        if (child instanceof THREE.Mesh) {//根据需求判断哪些加入objects,也可以在生成object的时候push进objects
          this.objects.push(child)
        }
    })
    var intersects = this.raycaster.intersectObjects(this.objects);
     
    
    if (intersects.length > 0) {
      console.log(intersects[0].object)
    }
    }, false)
     
    官方demo:https://threejs.org/examples/canvas_interactive_cubes.html
  • 相关阅读:
    delphi try except语句 和 try finally语句用法以及区别
    正向代理与反向代理(转)
    kbmMW功能
    problem 202,263、232、21、231
    leetcode day8
    leetcode day7
    VS2013 opencv2.4.8
    web 前端routine
    leetcode day6
    leetcode day5
  • 原文地址:https://www.cnblogs.com/brainworld/p/8309073.html
Copyright © 2011-2022 走看看