看文档,getBoundingBoxToWorld得到的包围盒包括子节点,如何得到自己单个节点的包围盒
好的,谢谢啦! 只是暂时有点不太明白 this._matrix是什么东西
你可以不用这个,直接使用this.node.parent.convertToWorldSpaceAR(this.node.getPosition());就可以获取node的世界坐标了
最近也碰到了这个问题,贴一下我自己的解决方法,cocos creator版本是2.4.10
// 返回节点自身的AABB包围盒(不包含其子节点)
static getNodeSelfBoundingBoxToWorld(node: cc.Node): cc.Rect {
// 获取节点基于其父节点坐标系下的包围盒
const localBoundingBox = node.getBoundingBox();
// 获取节点父节点的世界变换矩阵
let worldMatrix: cc.Mat4 = new cc.Mat4();
node.parent.getWorldMatrix(worldMatrix);
// 使用世界矩阵将局部边界框转换为世界坐标系中的边界框
let worldBoundingBox: cc.Rect = new cc.Rect();
localBoundingBox.transformMat4(worldBoundingBox, worldMatrix);
return worldBoundingBox;
}
2赞
getBoundingBox()返回的是不包含子节点的包围盒的
非常好用 嘻嘻嘻
