使用 Texture2D.LoadImage 动态加载png图片的时候,显示不正常

 

B2B62FCA-03CC-4046-BB19-70406738289F.png

这是正常的画面
 
BBB3CB26-A27A-4701-82AB-F762FF932AA9.png

这是从 streamAssetsPath 动态加载的 name@.atlas0.png 显示的画面
 
不正常的灰色部分是 相机的背景颜色,应该是那部分透明了。
 
之所以动态加载png图片。而不用assetbundle
是因为我希望可以直接让策划将图片放到指定位置
就可以运行发布的exe程序,来运行游戏,而不需要安装unity。
unity版本 5.6 和 2017.1 都有测试。都有相同的问题
另外如果使用fairygui/blurfilter这个shader 则中间部分可以正常显示
已邀请:

谷主

赞同来自:

UI包的加载是整体的,没有提供方法让你单独加载一个纹理集进包,我不明白你是怎么操作的。如果你要载入一个外部图片,可以用装载器。
另外,无论什么方式,这都属于载入问题,不属于显示问题。生成的纹理格式有没有设置对,有没有带了预乘,有没有带透明通道之类。

yukisky

赞同来自:

哦。之所以这么做,是因为我是配合lua使用的。
所以我希望的是,通过fairygui新建的package也可以直接通过lua代码 AddPackage,而不是放入unity生成asset之后再Resource.load(),也不希望新生成的package需要依赖unity生成AssetsBundle,再加载ab包。所以我想要直接加载fairygui编辑器发布出来的'name@atlas.png'图片,所以装载器不适合我的需求。
 
这样把框架搭好之后,直接发布一个windows版本。然后配上这个console,http://blog.csdn.net/cartzhang/article/details/49884507
可以交给其他人实现简单的功能开发,调整。而不用安装unity,和配置环境。类似cocos的windows版。
当然了,最后的发布还是会通过ab包加载的。
 
另外问题,解决了。确实是忽略了那个 alphaTexture的判断。生成了默认的❓纹理 ,导致这个纹理叠加在mainTexture上了。
最后感谢回答

谷主

赞同来自:

理解你的需求了。

要回复问题请先登录注册