项目场景:按钮教程高亮显示按钮
项目需要做新手引导,对于按钮的教程是全屏黑色遮罩遮挡,按钮不被遮挡,达到高亮和强制点击效果
问题描述
使用RectTransformUtility.CalculateRelativeRectTransformBounds方法计算按钮的位置和大小时总会有部分界面无法正常显示
_Target = target.GetComponent<RectTransform>();
Bounds bounds = RectTransformUtility.CalculateRelativeRectTransformBounds(_cacheTrans, _Target);
原因分析:
计算出来的大小总是特别大,而且只是这个按钮有问题,同级创建一个新的按钮就没问题.后续发现问题按钮下有粒子系统
后面看了CalculateRelativeRectTransformBounds的源码,这个是遍历所有子节点,得到所有子节点的位置与大小,最后给出的结果是将所有子节点的大小位置都包含在内的,我猜测是在计算粒子的大小与位置的时候出现了问题导致的
解决方案:
在计算位置按钮大小的时候关闭粒子系统,计算完毕后恢复,只能算是一个不算解决方法的解决方案吧!如果哪位大神有更好的方法或者详细原因,烦请告知一下!