FairyGUI 添加动态模糊导致GObject不显示的问题

现象

某个组件添加动态模糊Filter后,移除动态模糊。有时会有一些图片显示不出来

查找问题

这个问题之前也遇到过,但当时遇到了播放动效层级错位的问题,下意识以为图片不显示也是层级错误了,导致没有找到问题。
最近再次遇到这个问题后,编辑器运行模式下将Unity中的UI的无关的组件全部隐藏,发现Game窗口中不显示的物体在Scene窗口中是显示的,这时在仔细查看物体的各种组件属性,终于发现了根本的问题——GObject的层级和UI相机的层级不一致。
之后又查看了动态模糊和fairyGUI的一些源码,找到了问题出现的原因:1. 动态模糊添加时,会记录GObject的层级,动态模糊移除时,会恢复GObject的层级。2. new出来的界面,在没有显示之前的层级都是default。

尝试解决

最开始的想法是添加动态模糊之前设置一下那个物体的层级,但因为UI展现涉及到多个相机的显示,层级可能不固定,当时的想法是用界面的根节点的层级来设置目标物体的层级,但结果失败了,层级没有改掉。
后来又想在组件界面初始化完成后直接根据组件根节点层级重置一下当前界面所有子物体的,但因为界面新创建不显示之前层级为default,这个方法也不好用。

最终的解决方法还是组件初始的时候重置到指定的层级。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容