一个节点,如下图,判断他是否包含点击范围内,结果点击他周围很大的地方,都包括在他的点击范围内:
如下图:点击范围如红框这么大的,label所在的Node节点都判断是在他的范围内,用getBoundingBoxToWorld获得的数据是不是有问题?
判断代码如下:
脚本是挂在Cavans节点上的
一个节点,如下图,判断他是否包含点击范围内,结果点击他周围很大的地方,都包括在他的点击范围内:
如下图:点击范围如红框这么大的,label所在的Node节点都判断是在他的范围内,用getBoundingBoxToWorld获得的数据是不是有问题?
判断代码如下:
脚本是挂在Cavans节点上的
getBoundingBoxToWorld 好像会和子节点的包围盒组成一个大包围盒
我是这样处理的:
node:需要判断点击范围的节点;
touchPoint=event.getUILocation();
1.先将touchPoint转换为node父节点的坐标:point = node.parent.getComponent(UITransform).convertToNodeSpaceAR(v3(touchPoint.x, touchPoint.y));
2.再判断触摸点是否在node范围内
node.getComponent(UITransform).getBoundingBox().contains(point);
应该是跟预制件有关
重新建立一个Node,加上lable,不会出现这样的情况
将原来的那个预制件再复制一个,也会出现这样的不准确的情况,删掉这个预制件重新制作一个预制件,再复制过来,就正常。
可能跟原来的那个预制件,曾经对子节点lable等调整过位置有关,系统可能记录了调整前的位置,导致总的bound AABB包括原来调整前的子节点的范围,导致很大。
这应该是系统的一个bug,该@谁?