SpriteStudioForUnity.SpriteStudioBaker.CreateTexture C# (CSharp) Method

CreateTexture() public method

public CreateTexture ( SpriteStudioCellMap cellMap ) : void
cellMap SpriteStudioCellMap
return void
        public void CreateTexture(SpriteStudioCellMap cellMap)
        {
            string destFileName = texturesDirectory + "/" + cellMap.imagePath;
            File.Copy (sourceDirectory + "/" + cellMap.imagePath, destFileName, true);
            AssetDatabase.ImportAsset (destFileName);
            TextureImporter importer = TextureImporter.GetAtPath (destFileName) as TextureImporter;
            if (importer != null) {
                importer.textureType = TextureImporterType.Advanced;
                importer.maxTextureSize = 4096;
                importer.textureFormat = TextureImporterFormat.AutomaticTruecolor;
                importer.isReadable = false;
                importer.filterMode = FilterMode.Bilinear;
                importer.npotScale = TextureImporterNPOTScale.None;
                importer.wrapMode = TextureWrapMode.Clamp;
                importer.mipmapEnabled = false;
                importer.spriteImportMode = SpriteImportMode.Multiple;
                importer.spritePixelsPerUnit = 1;

                List<SpriteMetaData> spritesheet = new List<SpriteMetaData> ();
                Vector2 pixelSize = GetVector2 (cellMap.pixelSize);
                foreach (SpriteStudioCellMapCell cell in cellMap.cells) {
                    SpriteMetaData metaData = new SpriteMetaData ();
                    metaData.alignment = (int)SpriteAlignment.Custom;
                    metaData.name = cell.name;
                    Vector2 size = GetVector2 (cell.size);
                    Vector2 pos = GetVector2 (cell.pos);
                    Vector2 pivot = GetVector2 (cell.pivot);
                    metaData.rect = new Rect (pos.x, pixelSize.y - pos.y - size.y, size.x, size.y);
                    metaData.pivot = new Vector2 (pivot.x + 0.5f, pivot.y + 0.5f);
                    spritesheet.Add (metaData);
                }
                importer.spritesheet = spritesheet.ToArray ();
                AssetDatabase.ImportAsset (destFileName);
                AssetDatabase.SaveAssets ();
                AssetDatabase.Refresh ();
            }
        }

Usage Example

        bool CreateTextures(SpriteStudioBaker baker)
        {
            string message = null;

            if (baker.cellMapList == null)
                return true;

            try
            {
                for (int i = 0; i < baker.cellMapList.Count; i++)
                {
                    SpriteStudioCellMap cellMap = baker.cellMapList [i];
                    message = cellMap.imagePath;
                    EditorUtility.DisplayProgressBar("Sprite Studio For Unity", "Create Texture(" + (i + 1) + "/" + baker.cellMapList.Count + ") : " + cellMap.name, 0.5f);
                    baker.CreateTexture(cellMap);
                }
            } catch (Exception e)
            {
                EditorUtility.DisplayDialog("Error", "Create Texture : " + message, "OK");
                Debug.Log(e.StackTrace);
                return false;
            }
            return true;
        }