"点击测试"功能在Unity中似乎表现异常
5 个评论
https://www.fairygui.com/docs/editor/component#%E7%82%B9%E5%87%BB%E6%B5%8B%E8%AF%95 看黑字说明
我确认了一下,图片和组件都在同一个包而且没有用装载器,而且图片中带颜色的部分也不是透明或半透明的。另外,我用另外一张图片试了一下,是有效的,所以感觉像素测试功能在Unity中有问题,用一张图片正常,用另一张图片则不正常
我知道为什么了,因为我在FairyGUI编辑器里放大了图片的长宽,并作为像素测试图,所以Unity中的像素测试表现异常了。我断点调试了下代码,应该是PixelHitTest.cs里的HitTest(Rect contentRect, Vector2 localPoint)函数用if (x < 0 || y < 0 || x >= _data.pixelWidth)代码判断不通过。如果我将图片设置为原大小,那Unity中就表现正常了。而fairygui编辑器中估计正确处理了图片缩放,所以表现正常。可以确定Unity中的像素测试处理逻辑遗漏了图片缩放这类情况
最终,我通过缩放整个按钮的方式解决了。之前我是在按钮组件里调整像素测试图的大小或缩放的,而这在Unity中是不支持的,在FairyGUi编辑器中则支持