zoukankan      html  css  js  c++  java
  • Unity的SpriteAtlas实践

    我的环境

    Unity引擎版本:Unity2019.3.7f1

    AssetBundles-Browser 于2021-1-14拉取,github上最后提交日期是2019-12-14,在本文简称:ABBrowser

    注意事项:每次修改spriteAtlas的属性后,都要把ab文件删除后再重新打包。

    事件通知:只有不勾选Include In Build 才会触发 SpriteAtlasManager.atlasRequested

    SpriteAtlas不勾选Include In Build

    UI和图集不同名

    KSFramework中的例子分析,打开ABBrowser来看,如果图集的abName和ui的abName不一致,会提示你元素被打包到多个ab中,实际也是打包到不同的ab中了

    image

    UI和图集同名且引用公共图集

    如果一个图片被多个ui界面的prefab中引用,不管这个图片是否有打到共用图集中,都会提示xxx is auto-included in multiple bundles,但是通过解包ab可以看到login.ab并未包含btn_panel_02这张图,因为btn_panel_02打包在公共图集中

    image-20210407163757314

    项目实践

    最好的做法,就是一个atlas只被一个ui.prefab引用,且atlas和ui打到同一个ab中

    这种做法需要自己加载图集,在UI编辑器中处理一套,而加载资源需要处理另一套

    根据这个特性,我在 KSFramework 中已经对unity的spriteAtlas进行了管理

    勾选Include In Build

    如果图集和UI不在同一个ab中,则打包出来的版本会丢图,在Editor中中正常的。

    而如果图集和UI放在同一个ab中,则不会丢图

  • 相关阅读:
    sizeof()使用错例:sizeof(i++)
    修改linux命令符和解决命令符太长的问题
    【转载】阻止拷贝的三种方式
    git命令几个总结
    scp用法
    RAII
    a linked list
    c++11之函数式编程实例
    [转]基于SAML的单点登录介绍
    [转]OAuth、OAuth2与OpenID区别和联系
  • 原文地址:https://www.cnblogs.com/zhaoqingqing/p/14634510.html
Copyright © 2011-2022 走看看