Unity SpriteAtlas 打图集流程,与遇到的问题和解决方法

这篇具有很好参考价值的文章主要介绍了Unity SpriteAtlas 打图集流程,与遇到的问题和解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.创建图集

在unity里面使用SpriteAtlas ,把需要用到的游戏贴图资源,创建成对应的图集。

    /// <summary>
    /// 根据贴图资源路径创建对应的图集资源
    /// </summary>
	/// <param name="atlasName">贴图资源路径</param>
    private static void CreateSpriteAtlas(string atlasName)
    {
        SpriteAtlas atlas = new SpriteAtlas();
        var atlasPath = "Assets/Resources/Atlas/" + atlasName + ".spriteatlas";

        SpriteAtlasPackingSettings packingSetting = new SpriteAtlasPackingSettings()
        {
            enableRotation = false,
            enableTightPacking = false,
            padding = 4,
        };

        atlas.SetPackingSettings(packingSetting);     

        var pathArr = Directory.GetFiles("Assets/ResourcesLib/Atlas/" + atlasName + "/");
        var spriteList = new List<Sprite>();
        for (int i = 0; i < pathArr.Length; i++)
        {
        	//不需要.meta文件打进图集之中
            if (Path.GetExtension(pathArr[i]) == ".meta")
                continue;
            var sprite = AssetDatabase.LoadAssetAtPath<Sprite>(pathArr[i]);
            if (sprite != null)
            {
                spriteList.Add(sprite);
            }
        }

        atlas.Add(spriteList.ToArray());
     	//创建对应的资源
        AssetDatabase.CreateAsset(atlas, atlasPath);
    }

2.遇到的问题

贴图资源没有打进包里面,如果以文本的方式打开图集,会发现文本里面关于m_PackedSprites的数组和m_PackedSpriteNamesToIndex的数组都是为空的,没有值在里面,没有值的这两个变量,是用不了对应的贴图资源的。
unity spriteatlas,Unity干货,unity,贴图

3.解决方法

我通过unity自带的接口SpriteAtlasUtility.PackAtlases(spriteAtlases.ToArray(), activeBuildTarget,true),重新对着生成出来的图集调用接口,导出了对应的变量参数,图集因而成功使用。

    /// <summary>
    /// 给图集资源创建m_PackedSprites和m_PackedSpriteNamesToIndex数据
    /// </summary>
    /// <param name="arr">图集路径</param>
    public static void CreateSpriteAltasPackedSprites(object[] arr)
    {
        SpriteAtlas[] spriteAtlas = new SpriteAtlas[arr.Length];
        for (int i = 0; i < arr.Length; i++)
        {
            spriteAtlas[i]= arr[i] as SpriteAtlas;
      
        }
        //自动生成图集的接口
#if UNITY_WEBGL
        SpriteAtlasUtility.PackAtlases(spriteAtlas,BuildTarget.WebGL);
#else
        SpriteAtlasUtility.PackAtlases(spriteAtlas,BuildTarget.StandaloneWindows);
#endif
    }

以上就是我对SpriteAtlas 打图集遇到问题的解决方法,感谢解决方案的作者(antiwb3)帮我解决了难题
https://zhuanlan.zhihu.com/p/357822794文章来源地址https://www.toymoban.com/news/detail-591538.html

到了这里,关于Unity SpriteAtlas 打图集流程,与遇到的问题和解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity中运行Python —集成— 解决可能会遇到的问题

    该文章旨在介绍如何在Unity中调用和执行Python程序。与以往只能事先运行Python程序不同,集成的方法可以根据Unity中某些参数的变化,自由的控制Python程序的开启。此外,我们还对过程中,可能会遇到的问题给出解决方法。 希望能帮助到你。✿✿ヽ(°▽°)ノ✿ 1. 打开文件 在

    2024年02月02日
    浏览(38)
  • Unity 安装Vuforia配置Android时遇到的问题及解决

    在做AR作业的时候,我遇到的最大的困难是配置环境。下面我说明下在配置环境中可以避免报错的方法,希望能帮助遇到问题的人。 unity版本: Unity 2019.4.38f1c1 在老师分享的实验报告里,有一个方法是:修改manifest.json文件,从第三行开始添加一行字\\\"com.ptc.vuforia.engine\\\":\\\"8.5.9\\\",

    2024年02月02日
    浏览(45)
  • unity学习遇到的问题:解决VS不能加载Unity脚本,MonoBehaviour是灰色的

    电脑出了点问题,然后就重装了,重装之后,从gitee上下载了原来的半截代码,结果发现里面的脚本运行出问题了,仔细一看,MonoBehaviour是灰色的,也就是说,加载不了unity的api了,下面是找到的解决方法,让我们感谢Leoysq大大写的这个方法 这里只写我的解决方法:

    2024年02月07日
    浏览(63)
  • 【Unity每日一记】如何从图片中切割对象(一键切割图集的方法你掌握了吗?)

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【软件设计师高频考点暴击】 ⭐【Unityc#专题篇】之c#系统化大礼包】 ⭐【unity数据持久化】数据管理类_PlayerPrfs ⭐【u

    2024年04月09日
    浏览(61)
  • 开发过程中遇到的问题以及解决方法

    巩固基础,砥砺前行 。 只有不断重复,才能做到超越自己。 能坚持把简单的事情做到极致,也是不容易的。 简单易用的git命令 git命令: 查看有几个分支:git branch -a 切换分支:git checkout 分支名称 下载项目:git clone url 拉取项目:每次提交代码之前都需要,相当于更新代码

    2024年02月13日
    浏览(45)
  • Postman上传文件遇到的问题及解决方法

            昨天用postman测试上传文件接口时遇到一个问题,设置好后文件参数怎么都不识别,报错提示: file load error:invalid or missing file source , 但是这个参数是之前设置好的,而且不用关联参数的话,这个接口是可以走通的,所以我之前一直怀疑和关联参数设置有关,但是试

    2024年02月16日
    浏览(44)
  • Unity连接数据库mysql全过程+可能遇到的问题与解决方案

    目录 一、具备条件 二、unity连接mysql 三、问题总结 1. Mysql安装完成         安装完成后需要查看mysql的版本,打开终端(管理者身份运行),输入以下语句登录mysql,查看MySQL版本; 可以看到我下载的版本是 5.7.38; 2. MySQL Connector/NET下载 目的:为了搭建unity连接mysql的环境

    2024年02月03日
    浏览(63)
  • 初次Blender建模遇到的问题与解决方法(二)

    前篇:初次Blender建模遇到的问题与解决方法_白归的博客-CSDN博客_blender常见问题 仍然是建用于mmd用的模型,在自己实际操作里发现的一些问题及解答方法 blender版本为3.2,安装了M3插件 一、旋转中心经常乱飞,旋转不便 把图上的勾选上 二、模型放大到一定程度后无法放大了

    2023年04月08日
    浏览(27)
  • Mac 安装Photoshop遇到一系列问题&解决方法

    各类安装报错提示的解决方案 问题一: 安装PS提示“ 无法打开,因为apple无法检查其是否包含恶意软件 ”解决方法: 打开电脑的“终端”程序 输入以下命令: (终端位置在:启动台-其他文件夹处) sudo spctl --master-disable (代码可以全选后快捷键:command+C复制 command+V粘贴进

    2024年02月05日
    浏览(43)
  • 使用Yolov7遇到的一些问题的解决方法

    我在使用yolov7中遇到了一些问题,通过查询相关的资料和网站将其一个一个解决了。首先遇到的第一个问题就是cuda的内存不足,报错内容如下所示: 通过分析它主要有以下三种原因。 应该有三个原因 GPU还有其他进程占用显存,导致本进程无法分配到足够的显存 缓存过多,

    2024年02月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包