king2088 / vue-3d-loader

VueJS and threeJS 3d viewer plugin
https://king2088.github.io/vue-3d-loader-docs
MIT License
222 stars 38 forks source link

请问下如果更换了模型的路径怎么重新加载? #110

Closed DZTZ closed 3 months ago

DZTZ commented 5 months ago
 <vue3dLoader :filePath="arr[index]" v-if="showm">
    </vue3dLoader>
    const arr = ref(['乐高玩具.glb', '手机扫描.glb', '武器.glb']);
上面是我的代码,我通过切换index来切换模型路径,发现切换路径后模型消失了,新的模型也没有加载出来
我目前的解决方式就是加一个v-if来达到重新渲染的效果

请问有专门的方法来重新加载模型吗?

还有一个问题,可以识别点击到模型的某一个位置吗?
比如有一个摩托车模型,当我旋转模型去点击轮胎时,能够知道点中了轮胎
有这个功能或相关的思路吗?

谢谢
king2088 commented 3 months ago
<vue3dLoader :filePath="arr[index]" v-if="showm">
  </vue3dLoader>
  const arr = ref(['乐高玩具.glb', '手机扫描.glb', '武器.glb']);
上面是我的代码,我通过切换index来切换模型路径,发现切换路径后模型消失了,新的模型也没有加载出来
我目前的解决方式就是加一个v-if来达到重新渲染的效果

请问有专门的方法来重新加载模型吗?

还有一个问题,可以识别点击到模型的某一个位置吗?
比如有一个摩托车模型,当我旋转模型去点击轮胎时,能够知道点中了轮胎
有这个功能或相关的思路吗?

谢谢

这应该是一个bug,在filePath为数组的情况下好像无法自动重载,但是filePath为string时应该是可用的(不需要v-if重新渲染),根据源码代码中看,在watch监听filePath时,可能是没有增加deep导致的,下一个版本将会增加deep,但并不确保是否能够在array中动态更换模型