我正在尝试用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'
请帮助!!
答案 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。