设置和克隆工作方式不同

时间:2016-06-23 13:32:16

标签: javascript three.js

我对三个j上的Set和clone有一些疑问,我试图渲染一个球体移动到x轴的场景,然后相机跟着看起来移动,我试着自己做书上学习的例子三个js,但我没有使用克隆和我的场景做了同样但我看不到球体,克隆我可以看到球体可以有人解释我为什么会发生?

这是两个不同的代码:

sphere.position.copy(new THREE.Vector3(x,10,0));


sphere.position.set(new THREE.Vector3(x,10,0));

第一个显示球体第二个不是:S

2 个答案:

答案 0 :(得分:2)

详细说明Derte所说的内容 - set基本上就像

一样
function set(_x,_y,_z){
    this.x = _x;
    this.y = _y;
    this.z = _z;
}

copy的作用类似于:

function copy(v3){
    this.x = v3.x;
    this.y = v3.y;
    this.z = v3.z;
}

你将不合适的参数传递给set函数,因此它在所有可能性内部都会抛出错误。点击Chrome中的ctrl+shift+i来检查控制台,你可能会看到它在使用copy执行第一行之后,当你尝试用set (THREE.Vector3)时,它会抛出错误{1}}作为参数而不是(float,float,float)

答案 1 :(得分:1)

位置为THREE.Vector3

看看referenceimplementation

Vector3.set需要3个值:数字xyz

Vector3.copy需要Vector3