通过 AABB 盒模型判断触点是否在盒模型内,点击无效

反馈时请提供以下信息:

  • Creator 版本:3.6.3

  • 目标平台:微信小游戏/真机模拟

  • 重现方式:华为 nova8 pro 打开微信小程序必现

  • 首个报错:cocos creator 直接运行 web 没有问题,但是放到微信开发者工具上点击色块,找不到对应色块的位置。

  • 相关代码:

     this.colorParent.on(Node.EventType.TOUCH_START, function (event: EventTouch) {
          let color_start_world = event.getLocation()
          var children = this.colorParent.children
          for (let i = 0; i < children.length; i++) {
              if (children[i].getComponent(UITransform).getBoundingBoxToWorld().contains(color_start_world)) {
                  if (i == this.specialColorIndex) {
                      this.initColorBaseInfo()
                      this.createColors()
                      DataManager.Instance.level++
                  }
              }
          }
      }, this)
    

最主要怀疑是这一行有问题:

if (children[i].getComponent(UITransform).getBoundingBoxToWorld().contains(color_start_world))

期待大佬们回复。

用这里面的获取包围盒代码 【muzzik教程】50行代码,教你优化列表draw call!【网格、横、纵 全包揽】

然后 getLocation 换成 getUILocation ,才是获取世界坐标

1赞

好的,我试一下。非常感谢。