1.因为Vector是一个对象,不clone直接调用add、subtract、multiply、divide这些算术方法时会改变自身的值
2.一般自己定义的Vector对象,自己不希望它改变且能参与到算术计算时需要clone先
举以下例子:如果pos在add前不clone,它自己本身将会变成在原有基础上z轴高200个单位
console.log("11111111: " + JSON.stringify(this.cube.worldTransform.position));
let pos = this.cube.worldTransform.position;
pos.add(new Vector(0, 0, 200));
this.cube.worldTransform.position = pos;
console.log("22222222: " + JSON.stringify(pos));
TypeScript
复制
如果pos克隆一下再add,它的z轴将没有变化
pos.clone().add(new Vector(0, 0, 200));
TypeScript
复制