bool SpriteIsPrepared(TextureImporter myImporter) { if (myImporter.spritePixelsPerUnit == pixelPerUnit && //myImporter.spritePivot == GetPivotValue(spriteAlignment, customOffset) && myImporter.spritesheet[0].pivot == PositionTools.GetPivotValue(spriteAlignment, customOffset) && myImporter.spriteImportMode == SpriteImportMode.Multiple && myImporter.spritesheet.Length == 6) { return(true); } return(false); }
private void PerformMetaSlice(TextureImporter spriteImporter) { if (spriteImporter != null) { Debug.Log("PerformMetaSlice: " + spriteImporter.assetPath); // TextureImporter myImporter = null; // myImporter = TextureImporter.GetAtPath (AssetDatabase.GetAssetPath(sprite)) as TextureImporter ; bool failed = false; List <SpriteMetaData> metaDataList = new List <SpriteMetaData>(); //TODO abfragen ob sprite <multiple> ist //TODO abfragen ob größe stimmt, überspringen ??? // Debug.Log("SpriteMode geladen: " + spriteImporter.spriteImportMode.ToString()); // Debug.Log("SpriteMetaData länge geladen: " + spriteImporter.spritesheet.Length); // if(spriteImporter.spriteImportMode == SpriteImportMode.Multiple) // { // spriteImporter.spriteImportMode = SpriteImportMode.Single; // UnityEditor.EditorUtility.SetDirty(myImporter); // } // Debug.Log("SpriteMode (umgestellt): " + spriteImporter.spriteImportMode.ToString()); // Debug.Log("SpriteMetaData länge (umgestellt): " + spriteImporter.spritesheet.Length); // falls multiple // slicedSprite = new Sprite[subSpritesCount]; // Calculate SpriteMetaData (sliced SpriteSheet) for (int i = 0; i < subSpritesCount; i++) { try { SpriteMetaData spriteMetaData = new SpriteMetaData { alignment = (int)spriteAlignment, border = new Vector4(), name = System.IO.Path.GetFileNameWithoutExtension(spriteImporter.assetPath) + "_" + i, pivot = PositionTools.GetPivotValue(spriteAlignment, customOffset), rect = new Rect(i * pixelSizeWidth, 0, pixelSizeWidth, pixelSizeHeight) }; // erhalte sliced Texture // slicedSprite[i] = Sprite.Create(unslicedSprite.texture, spriteMetaData.rect, spriteMetaData.pivot, pixelPerUnit); metaDataList.Add(spriteMetaData); } catch (Exception exception) { failed = true; Debug.LogException(exception); } } if (!failed) { spriteImporter.spritePixelsPerUnit = pixelPerUnit; // setze PixelPerUnit spriteImporter.spriteImportMode = SpriteImportMode.Multiple; // setze MultipleMode spriteImporter.spritesheet = metaDataList.ToArray(); // weiße metaDaten zu EditorUtility.SetDirty(spriteImporter); try { AssetDatabase.StartAssetEditing(); AssetDatabase.ImportAsset(spriteImporter.assetPath); } catch (Exception e) { Debug.LogError("wtf " + e.ToString()); } finally { AssetDatabase.StopAssetEditing(); // myImporter.SaveAndReimport(); //Close(); } } else { Debug.LogError(spriteImporter.assetPath + " failed"); SpriteAssetInfo(spriteImporter); } } else { Debug.LogError(" sprite == null"); } }