问答详情
源自:4-1 AR mark和camera1

如何对模型添加事件?

请问老师,如何对模型添加事件?比如点击模型,或者对模型进行拖拽等,谢谢老师

提问者:慕圣513290 2020-12-07 15:55

个回答

  • 慕少2412895
    2020-12-08 15:22:56

    原理:一般使用射线new THREE.Raycaster()拾取几何对象, 根据鼠标屏幕坐标转化为threejs三维坐标去锁定模型最后在编写你要做的操作。

    相关方法使用去官网找文档

    给你个大致例子吧

    var raycaster = new THREE.Raycaster();   

    var mouse = new THREE.Vector2();

    window.addEventListener( 'click', ()=>{

    // 通过鼠标点的位置和当前相机的矩阵计算出raycaster

    let ray = raycaster.setFromCamera(args)

    // 获取raycaster直线和所有模型相交的数组集合

    let tar =  ray.intersectObjects(args)[0]

    //你要进行的操作

    ...

    }, false )


    重点来了

    官网文档地址:https://threejs.org/docs/index.html#manual/introduction/Creating-a-scene

    还有偷懒的方法(官方有封装好的相关库,DragControls.js )和相关demo

    去threejs官方文档里搜上面的关键字就行。

    如果你再不会那我真的没办法了

    http://img3.mukewang.com/5fcf29cc0001167b08360653.jpg