我是从版本2.5.4升级到版本3.4,发现API变了许多。一些脚本的复用就改了我很长时间…
然后,做tween运动的时候,突然发现向量的计算跟旧版本不太一样。
tween内容:若干个点从坐标A散开再移动到坐标B,
部分代码如下:
for(let i = 0;i<6;i++){
let pst = pstA.add(pst_diff) //pst_diff是一个xy在范围R内随机的vec3
tween(node)
.set({ scale: v3(0.2, 0.2, 0.2), position: pstA })
.parallel(
tween().to(0.3, { position: pst }, { easing: ‘backInOut’ }),
tween().to(0.2, { scale: v3(1, 1, 1) }, { easing: ‘backInOut’ })
)
.to(0.2,{ position: pstB }, { easing: ‘backInOut’,} )
.start()
}
然后发现pstA在叠加随机值pst_diff给pst后,pstA也跟着变化了。查了API才知道 .add 是 将当前向量与指定向量的相加 ,旧版本是有 .add 和 .addSelf 之分的。
现在我是使用 let pst = pstA.clone().add(pst_diff) 代替 let pst = pstA.add(pst_diff)
所以我的问题是:除了这种方法 和 let pst = v3(pstA.x+pst_diff.x,pstA.y+pst_diff.y,pstA.z+pst_diff.y) 外,有其他的实现方法吗?在pstA叠加随机值pst_diff给pst后不变化pstA的值?