Three.js - 设置立方体颜色?

时间:2017-02-17 19:48:11

标签: javascript 3d three.js


我正在尝试用three.js创建一个简单的3D游戏。我正在尝试创建彩色立方体,但所有立方体都保持相同的颜色。

当我创建一个立方体时,我会这样做:

var geometry = new THREE.BoxGeometry(width, height, length);
var material = new THREE.MeshNormalMaterial({color: hexColor});
var cube = new THREE.Mesh(geometry, material);

(在函数内)
然后我使用该功能两次, hexColor为0x0000ff(蓝色)和0xff0000(红色)。 立方体确实生成,但立方体的所有面都是不同的颜色。 我也试过

cube.material.color.setHex();

但是它给出了Uncaught TypeError:无法读取未定义的属性'setHex'

请帮助!!

1 个答案:

答案 0 :(得分:1)

您的问题是// get the current assembly from cache var currentAssembly = Assembly.GetEntryAssembly(); // if current assembly is null if (currentAssembly == null) { // get the current assembly from stack trace currentAssembly = new StackTrace().GetFrames().Last().GetMethod().Module.Assembly; } // get the assemblies path (from returned assembly) assembliesPath = Path.GetDirectoryName(currentAssembly.Location); 没有颜色属性。请尝试使用THREE.MeshNormalMaterial()

如果你这样做,你的THREE.MeshBasicMaterial({ color: yourHexColor });电话应该可以正常工作。

您可以在Three.js docs page找到所有必要信息,如果您有兴趣,请查看专用examples page