[ HitTest ] 获取Texture像素值

Cocos Creator HitTest 获取像素值

通过世界坐标获取Texture中的像素值, 可实现高性能的像素级点击反馈, 没有额外的渲染过程, 也不需要额外占用内存.

开发环境

  • 引擎版本: Cocos Creator 3.8.0
  • 编程语言: TypeScript
  • 版本支持: 2.4.x | 3.6.x | 3.7.x | 3.8.x

接口说明

    // 节点对象
    const node = evt.target;
    
    // 世界坐标
    const pos = evt.getLocation();
    const wpos = camera.screenToWorld(cc.v3(pos.x, pos.y, 0));
  • static hittest(pos: cc.Vec3, node: cc.Node): boolean
    const hit = HitColor.hittest(wpos, node);
  • static hitcolor(pos: cc.Vec3, node: cc.Node): cc.math.Color | null
    const color = HitColor.hitcolor(wpos, node);

测试截图

4赞

效果不错,但溢价很多

我觉得定价少了。起码180000元

真的非常感谢,你这个应该是整个cocos最大的贡献值,我这边过阵子会购买,真的拜谢

不过我有个疑惑,你这图片都是提前知道大小的,如果需要动态加载服务器的图片,那么是否支持呢?

冤大头.:joy:

昨晚花了半小时搞的,需要的自取,还是对接口不熟悉才花这么久

1赞

哈哈哈,这玩意儿我不懂shader我也半小时能做出来

嘿嘿,我不用亲自做呀,我用马赛克的都够了

(帖子被作者删除,如无标记将在 24 小时后自动删除)

真是无聊,你管别人定价多少,你不买就行了,保不齐有不会写又刚好觉得有用的人愿意花这个钱;与其在这里恶心人,做点正经事不好么

2赞

不一样,你这个没法实现它的效果,也就是,没法2个按钮挨的很近,他这个实现的方式不需要额外的摄像机来判断像素,所以,整个cocos界,应该是前无古人的,非常的吊

说句实话,我给你一周你也搞不定,你信不?

图片事先存放到编辑器端和图片等到需要用到的时候才从服务器加载,这个是不一样的饿,
比如你上面的图,我是否可以动态从服务器resource.load()加载其他图片进来点击然后判断也能实现这种效果?如果可以,那么真的吊的飞起

多说一句哈,大家可能看不到这个项目的价值,看来你们还是少做项目,楼主的这个效果,放眼整个论坛,都是没人做到的

你是否在寻找:Cocos Creator | eazax-cases

5赞

你这个应该也没法2个按钮挨的很近~是用了多个摄像机取色素的原理吧

这不是秒赞,真的是没人去做这个东西,你是第一个,我必须得顶,没人做的东西,你第一个做出来,那就值得称赞,要我写,我肯定写不出来,其实很多人都写不出来

(帖子被作者删除,如无标记将在 24 小时后自动删除)

1赞

sprite 放大缩小 旋转过后是否可用

2赞

(帖子被作者删除,如无标记将在 24 小时后自动删除)