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 ();
}
}