Javascript 三种颜色:未知颜色002dff(警告/错误)
我需要在收到dat.GUI的值后更新颜色。 但是这个Javascript 三种颜色:未知颜色002dff(警告/错误),javascript,three.js,Javascript,Three.js,我需要在收到dat.GUI的值后更新颜色。 但是这个 var colored = new THREE.Color(value.replace("#","0x")); 正在抛出此警告。颜色:未知颜色0x002dff且“有色”未更新 值=002dff在当时,它不断变化,用户输入 编辑:我知道我可以将其用作THREE.Color 002dff,但颜色在运行时会根据使用dat.GUI创建的控件的用户输入而变化,因此我不知道可以添加到代码中的实际值 PS:是更换导致了问题。问题解决了。试试这个新的3.c
var colored = new THREE.Color(value.replace("#","0x"));
正在抛出此警告。颜色:未知颜色0x002dff且“有色”未更新
值=002dff在当时,它不断变化,用户输入
编辑:我知道我可以将其用作THREE.Color 002dff,但颜色在运行时会根据使用dat.GUI创建的控件的用户输入而变化,因此我不知道可以添加到代码中的实际值
PS:是更换导致了问题。问题解决了。试试这个新的3.colorFF00FF。如果你想为你的程序选择一种偏好的颜色。检查这个链接,你可以到photoshop,你可以选择颜色,它会显示颜色代码。你必须给构造函数一个十六进制数,而不是字符串。尝试调用函数:
var colorValue = parseInt ( value.replace("#","0x"), 16 );
var colored = new THREE.Color( colorValue );
颜色有.setStyle方法
例如。three.js r85,dat.GUI 0.6.5
PS不要使用新的THREE.Color要更改材质的现有颜色,请使用setXXXXX THREE.Color方法wow只需像new THREE.Colorfff000或其他方法一样传递它,如果可以的话。我提到该值是从dat.GUI生成的。您使用的Three.js版本是什么?在最新的版本r85中,它工作得非常好。我怀疑它是否能工作,因为dat.GUI返回字符串值,而颜色构造函数需要十六进制值@Hellium在他的评论中提到了这一点。看看我的答案,并检查它的示例,please.var colored=new THREE.Colorvalue.replace,0x;这就是我面临的问题,因为我需要在模块中添加if语句。如果该“条件”不是必需的,那么它已经在使用color.setHex。@UtkarshZaveri仔细阅读了THREE.color的构造函数,特别是在使用dat.GUI的上下文中有关CSS样式字符串和.setStyle方法的部分,让我检查一下。使用r85@UtkarshZaveri出于好奇,是否成功?只需使用var colored=new THREE.Colorvalue;在你的代码中的某个地方设置颜色,你就会知道我的问题了。为什么你没有投票权?这是我的!非常感谢。
var obj;
var gui = new dat.GUI();
var props = {
color: '#002dff'
};
var colorController = gui.addColor(props, 'color');
colorController.onChange(
function(value){
// uncomment this to see it's working
//var colored = new THREE.Color(value);
//console.log(colored);
obj.material.color.setStyle(value);
}
);
var sphere = new THREE.Mesh(new THREE.SphereGeometry(2, 32, 24), new THREE.MeshStandardMaterial());
sphere.material.color.setStyle("#002dff");
scene.add(sphere);
obj = sphere;