a模型的本地坐标怎么转换成 b模型的本地坐标

比如我要用挂点功能,我要添加一个箱子到挂点的target ,a 模型是 世界坐标 我要转换成target 的本地坐标

什么是挂点系统?

挂点功能https://docs.cocos.com/creator3d/manual/zh/engine/animation/skeletal-animation.html#%E6%8C%82%E7%82%B9%E7%B3%BB%E7%BB%9F

let pos1 = this.node.convertToWorldSpaceAR(cc.v2(0,0));
let pos2 = other.node.convertToNodeSpaceAR(pos1);

你这是2d 的吧,我的需求是 3d模型 在 坐标系的转换

问题解决了 结贴!!!

发一下解决办法把

/**
 * a模型转换成b模型的本地坐标
 * @param out 输出
 * @param aModel a模型
 * @param bModel b模型
 */
public static aModelTobModelLocalPos(out: cc.Vec3, aModel: cc.Node, bModel: cc.Node) {
    /**获得物体的世界坐标 */
    let worldma = aModel.worldMatrix.clone();
    /**矩阵求逆 */
    let mat4 = cc.Mat4.invert(worldma, bModel.getWorldMatrix(worldma))
    /**获得当前坐标 */
    out = out.set(aModel.position.x, aModel.position.y, aModel.position.z);
    /**向量和矩阵相乘 */
    Vec3.transformMat4(out, out, mat4)
}
6赞

Cannot read property ‘worldMatrix’ of undefined
有空给瞧瞧?碰到2次。上一次欢乐别的方法。这次别的方法暂时不好使。看看这个问题咋修复

什么问题,转换坐标?

是的。报错 无法读取未定义的属性“ worldMatrix”。偶尔出现。

那有可能你的对象 没有parent

。。。原来如此。我生成看个东西,直接放在scene下面

谢谢解惑。

请问楼主在做 3d 模型动画,和坐标系上遇到我这种类似的问题吗?求指教,感谢

https://forum.cocos.org/t/topic/110920/2