spriteFrame设置rect后点击范围

spriteFrame设置rect只显示纹理的一部分,但是点击区域还是整个纹理的大小,期望是只点击显示部分的位置有触发事件,这有什么解决办法吗?

举例:一张图片大小200 * 200,设置spriteFrame的rect显示图片的20 * 20,这时候UITransform的宽高是200 * 200所以点击200*200范围都触发了点击事件,期望是只有点击20 * 20这部分才触发,因为其他部分实际是不可见的

@dumganhar
@jare
@dream_chou93

那你的uitransform(可以理解为就是rect) 也要是20 20

rect就是20 * 20,UITransform设置为20 * 20图片就缩小了。
需求是200 * 200按照原尺寸显示20 * 20部分

看样子只能再套一层来做点击了

const sp = this.sprite.spriteFrame.clone();
sp.rect = this.rect;
this.sprite.spriteFrame = sp;

复制一份新的 SpriteFrame,在新的上面做修改就好了。