【问题标题】:ThreeJs: Can I hide and Unhide layers in a Json Model/OBJ Model with ThreeJSThreeJs:我可以使用 ThreeJS 在 Json 模型/OBJ 模型中隐藏和取消隐藏图层吗
【发布时间】:2018-09-13 19:19:42
【问题描述】:

我和我的朋友正在开发衬衫的 3D 配置器,我认为如果他为我们拥有的每种类型的按钮创建一个新模型以使其看起来充满活力,那将是最好的 - 以同样的方式,我们创建不同类型的模型用于不同的项圈,但他建议他可以使用一种称为层的东西并在不同的层上创建不同的按钮类型,我所要做的就是根据用户选择的按钮隐藏和取消隐藏层。我想知道是否可以在 Three.js 中以编程方式隐藏图层,以及是否可以将带有图层的网格导入到 Three.js 项目中。

【问题讨论】:

  • 你能发布你的代码吗?
  • 可以在three.js中隐藏和取消隐藏obj模型
  • 我不是在谈论隐藏模型,而是在谈论“图层”。你了解图层吗?
  • @Eshiett 关于层的东西是here。请阅读How to Askminimal reproducible example

标签: three.js blender maya


【解决方案1】:

仅 Javascript 的解决方案,三个.js(任何版本)

//one button
var mySingleButton = new THREE.Mesh()

//hide one button
mySingleButton.visible = false 

//show one button
mySingleButton.visible = true

制作图层:

var myLayer = [] //this is an array, you can think of it as a group of things or "layer" of things
for( var i = 0 ; i < 10 ; i ++ ){
   myLayer.push( new Mesh() ) //this is called a loop, it will create 10 meshes and store them in the group declared above
}

稍后在你想隐藏它们的代码中

//you can use the loop again
for( var i = 0 ; i < 10 ; i ++ ){
   myLayer[i].visible = false //with i you access the button in the layer and hide it
}

然后当你想展示它们时

  //you can use the loop again
for( var i = 0 ; i < 10 ; i ++ ){
   myLayer[i].visible = true 
}  

如果您想将某个模型导出到 three.js 并且您不确定它是否支持任何类似“层”的东西,您可以制定一个约定。您可以将其称为layer_0_button,而不是导出名为button 的网格。使用 javascript,您可以将此名称与 layer_1_button 区分开来。

【讨论】:

    猜你喜欢
    • 2017-09-10
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 2016-06-03
    • 1970-01-01
    • 2021-09-04
    相关资源
    最近更新 更多