[ HitTest ] 获取Texture像素值

19块要卖多少份才够还房贷。。

原理应该类似是这样,但是如果每一个对象都要读像素,会不会效率上有问题,我之前实现过类似的,原理:
1.筛选可能点击的对象,打上颜色标记
2.把选出的对象按颜色标记渲染在RenderTexture里面
3.读坐标点的颜色,根据之前的颜色标记确实是哪一个对象

这就是理解上的区别,用户觉得很常用的功能/组件应该有,开发方便嘛,但是引擎组的人不这么认为,他们有更高优先级的任务。这大概就是做基础引擎和做业务游戏想法不同吧

我去 学到了。。我以前都是直接屏蔽帖子。。

哥哥,买了发现不支持2.x

感谢支持, 请问您指的是Demo不支持2.x还是 HitColor.ts 这个脚本在2.x不工作?

我觉得论坛经常有人发帖子问的肯定是常用的,,

直到这个帖子的出现,也就是到2023下半年都才出现这种sprite按钮,你以为。。。常不常用我觉得是个人都会觉得比官方的btn强大几百倍,别说性能的哪些东西了,这点性能,在需求面前压根不值得一提。
也不是说必须官方来做,而是社区也没人做,直到这个老兄做出来后,有几个老哥就很不屑,不去做又很不屑。。。

代码拷贝到2.x

好的 晚上我看一下.

CocosCreator HitTest-高性能像素级点击体验 支持CocosCreator 2.x, 请大家及时下载更新

2赞

确实,现在感觉价格体系混乱,商城逛一圈,得,还是自己做吧

HitTest - v1.3.0 版本请大家及时下载更新.

  • 修复packable状态异常

买了一份支持一下,虽然用不到,加油 :grinning:

感谢支持, 非常感谢:pray:

@1226085293
读取像素不用摄像机 RenderTexture 那套也能做呀,而且效率更高。
只要拿到节点持有的纹理 texture = node.getComponent(Sprite)!.spriteFrame.texture,再调用 RenderTexture.prototype.readPixels.call(texture, x, y, 1, 1) 就能直接拿到该像素点四个通道的数据了。
这里唯一要考虑的问题就是 x,y 是从屏幕坐标转换到图像坐标的。

演示图,有点糊,不过意思传达到了就行。
QQ20231106-155836-HD

8赞

好的收藏了,不过我只是读取全屏幕像素,用RT更合适

v1.3.2版本 : 修复已知问题, 优化性能.

扫码体验

HitPerformanceWeb.jpg

到此一游!!!

QQ截图20231122182222

我尝试了一下,这样写不对?
坐标转换用0,0原点测试是对的