比如我要用挂点功能,我要添加一个箱子到挂点的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下面
谢谢解惑。