javascript 在three.js中更改立方体的颜色

bvpmtnay  于 2023-11-15  发布在  Java
关注(0)|答案(4)|浏览(184)

我正在尝试根据变量改变立方体的颜色。我创建了两个立方体,我想根据它们之间的距离改变它们的颜色。
立方体是这样创建的:

  1. geometry = new THREE.CubeGeometry( 50, 50, 50 );
  2. material = new THREE.MeshBasicMaterial( { color: 0xff0000, wireframe: true } );
  3. cube = new THREE.Mesh( geometry, material );
  4. scene.add( cube );

字符串
现在我试着这样做:

  1. if(distance > 20)
  2. {
  3. cube.material.color = 0xffffff;
  4. }


但是它不起作用。我看了例子,但是找不到任何合适的东西。

u3r8eeie

u3r8eeie1#

您没有正确指定颜色值。

  1. cube.material.color.setHex( 0xffffff );

字符串

xtupzzrd

xtupzzrd2#

  1. cube.material.color

字符串
会给你给予THREE.Color对象:
颜色
它有很多方法可以用来设置颜色。

yx2lnoni

yx2lnoni3#

我的建议是给你的对象附加一个函数,这样你就可以在运行时轻松地改变对象的颜色。
根据你的代码

  1. geometry = new THREE.CubeGeometry( 50, 50, 50 );
  2. material = new THREE.MeshBasicMaterial( { color: 0xff0000, wireframe: true } );
  3. cube = new THREE.Mesh( geometry, material );
  4. //here is the funcion defined and attached to the object
  5. cube.setColor = function(color){
  6. cube.material.color.set(color);
  7. }
  8. cube.setColor(0xFFFFFF) //change color using hex value or
  9. cube.setColor("blue") //set material color by using color name
  10. scene.add( cube );

字符串

展开查看全部
j2cgzkjk

j2cgzkjk4#

在材料部分,您可以提供一个十六进制的颜色值,如meshMaterial = new THREE.MeshBasicMaterial({color:0xfffff})在下面的代码中,十六进制值(0xffffff)是白色

相关问题