视口的缩放和移动居然会影响到worldMatrix

一直纠结在setParent会改变节点在场景中位置缩放旋转。。。
论坛里也有保持世界变换的是实现,用遍历所有父节点的方法实现的。
自己想用world maxtrix来实现,效率应该高点,第一步就卡主了

// 场景中两个并列的节点 a 和 b
let M_a = cc.mat4();  // a 的世界矩阵
a.getWorldMatrix(M_a);

let M_a_invert = cc.mat4(); // a 世界矩阵的逆矩阵
M_a.invert(M_a_invert);

let M_b = cc.mat4();   // b 的世界矩阵
b.getWorldMatrix(M_b);

let M_a2b = cc.mat4();  // a 到 b的变换矩阵
M_b.mul(M_a_invert, M_a2b);                                
// 只要a和b的相对状态不变, M_a2b应该不变。
// 目前在a、b的缩放值为1的状态下,平移编辑器视口 M_a2b保持不变,缩放视口,M_a2b等比变化
// a、b有缩放的情况下,变化就更复杂了。                                                            
1赞