Ejemplo n.º 1
0
 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);
 }
Ejemplo n.º 2
0
    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");
        }
    }