• 大小: 1.05MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-09
  • 语言: 其他
  • 标签: 图集  unity  图片  裁剪  

资源简介

可以将图集裁剪成小图片导出,不会使用ps可以这样将自己喜欢的小图片导出。

资源截图

代码片段和文件信息

#define USE_NGUI
#if USE_NGUI

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;

using UnityEditor;

using FreeImageAPI;

public class AtlasUtil 
{
    class frame
    {
        public string name;
        public Rect frame;
        public bool rotated;
        public bool trimmed;
        public Rect spriteSourceSize;
        public Vector2 sourceSize;
    }

    class Atlasmeta
    {
        public string app;
        public string version;
        public string image;
        public string format;
        public Vector2 size;
        public float scale;
        public string smartupdate;
    }

    class AtlasImage
    {
        public Listame> frames = new Listame>();
        public Atlasmeta meta = new Atlasmeta();
    }

    public static void Export(UIAtlas atlas)
    {
        Export(atlas @“E:\\tmp\\“);
    }

    public static void Export(UIAtlas atlas string folder)
    {
        AtlasImage atlasImage = new AtlasImage();

        atlasImage.meta.app = “http://www.texturepacker.com“;
        atlasImage.meta.version = “1.0“;
        atlasImage.meta.image = atlas.spriteMaterial.mainTexture.name + “.png“;
        atlasImage.meta.format = “RGBA8888“;
        atlasImage.meta.size = new Vector2(atlas.spriteMaterial.mainTexture.width atlas.spriteMaterial.mainTexture.height);
        atlasImage.meta.scale = 1.0f;
        atlasImage.meta.smartupdate = ““;

        foreach (UIAtlas.Sprite sp in atlas.spriteList)
        {
            frame frame = new frame();
            frame.trimmed = false;
            frame.rotated = sp.rotated;

            int frameX = Mathf.RoundToInt( sp.outer.xMin );
            int frameY = Mathf.RoundToInt(sp.outer.yMin);
            int frameW = Mathf.RoundToInt(sp.outer.width);
            int frameH = Mathf.RoundToInt(sp.outer.height);

            if ( sp.rotated )
            {
                int tmp = frameW;

                frameW = frameH;
                frameH = tmp;
            }
            frame.frame = new Rect(frameX frameY frameW frameH);
            frame.spriteSourceSize = new Rect(0 0 frameW frameH);
            frame.sourceSize = new Vector2(frameW frameH);
            frame.name = sp.name + “.png“;

            atlasImage.frames.Add(frame);
        }

        folder = GetFolder(folder atlas.spriteMaterial.mainTexture.name);

        Save(atlasImage folder atlas.spriteMaterial.mainTexture.name);

        SplitImage(atlas.spriteMaterial.mainTexture atlasImage folder);

        Debug.Log(“Done Export atlas “ + atlas.name);
    }

    static string GetFolder(string rootDir string texname)
    {
        if (!Directory.Exists(rootDir))
            Directory.CreateDirectory(rootDir);

        string folder = Path.Combine(rootDir texname);
        if (!Directory.Exists(folder))
            Directory.CreateDirectory(folder);


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.       178  2015-04-26 21:45  AtlasWindow.cs.meta

     文件    3374592  2014-03-23 15:03  FreeImage.dll

    ..A..H.        90  2015-05-23 07:54  FreeImage.dll.meta

     文件     189440  2015-02-08 17:58  FreeImageNET.dll

    ..A..H.       153  2015-05-23 07:54  FreeImageNET.dll.meta

     文件      11165  2015-04-26 22:01  AtlasUtil.cs

    ..A..H.       178  2015-04-26 21:45  AtlasUtil.cs.meta

     文件       1642  2015-04-27 23:07  AtlasWindow.cs

----------- ---------  ---------- -----  ----

              3577438                    8


评论

共有 条评论