cocos2dx 九宫格 shader失效的问题

来源:互联网 发布:淘宝帽子女士 编辑:程序博客网 时间:2024/06/05 06:45

最近一个同事使用UIImageView创建图片后,使用shader无效

经过查证发现这个图片如果是拉伸就有效,而九宫格无效

继续深挖 发现setScale9Enabled为true后,创建image的时候Scale9Sprite::createSlicedSprites()

会将原本的sprite替换为9个sprite,

可能有人会疑惑作者写这一部分的时候大部分sprite的设置会保留,

但是不知道为什么shader相关的却没有分别赋值。


其实是因为不少shader是无法全体适用的,比如流光效果,光照效果,如果分配到九个sprite上跟原本的效果就是大相径庭了。

而且可能会出现性能问题,所以还是推荐不要用九宫格来做shader,如果必须要用还是用普通的拉伸更靠谱一点。

原创粉丝点击