Three.js 大屏低代码

Todo

原文:
https://www.huangxiaoju.com/index.php/2022/08/27/three-js-%e5%a4%a7%e5%b1%8f%e5%8f%af%e8%a7%86%e5%8c%96%e7%bc%96%e8%be%91%e4%b8%80/

加载模型

模型点击高亮

模型点击拖拽位置

使用DragControls和TransformControls两个方法

  //园区模型
  let parkModel = new Promise((resolve) => {
    let myModel = []
    gltfLoader.load("./models/cg1-1.glb", (gltf) => {
      gltf.scene.traverse((child) => {
        if (child.userData.name && child.userData.name == 'Obj3d66-1464968-3108-357') {
          myModel.push(child)
        }
      });

      // gltf.scene
      arrModels.push(gltf.scene);
      let transformControls = new TransformControls(camera, renderer.domElement)
      let dragControls = new DragControls(myModel, camera, renderer.domElement)
      scene.add(transformControls)
	  
	  // 鼠标划过
      dragControls.addEventListener('hoveron', function (event) {
        transformControls.attach(event.object)
      })
	 
	 // 鼠标移开
      dragControls.addEventListener('hoveroff', function (event) {
        transformControls.detach()
      })


      dragControls.addEventListener('dragstart', function (event) {
        controls.enabled = false
      })

      dragControls.addEventListener('drag', function (event) {
        renderer.render(scene, camera)
      })

      dragControls.addEventListener('dragend', function (event) {
        controls.enabled = true
      })

      transformControls.addEventListener('mouseDown', (event) => {
        controls.enabled = false
      })

      transformControls.addEventListener('mouseUp', (event) => {
        controls.enabled = false
      })
      scene.add(gltf.scene)

    });
  });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值