- Home /
How to retrieve Sprite during texture importation
I'm currently working on custom 2D models. In my workflow, I copy to the Asset directory of my project a directory containing binary files and a bunch of pngs that will be used as sprites. Using the OnPostprocessAllAssets callback on a AssetPostProcessor class, I create an asset for my model and I convert all textures in the folder to Sprites with adapted parameters.
Up to this point, everything work fine, but I also need to reference in my asset all the sprites associated with the model. So I try loading the sprites using AssetDatabase.LoadAllAssetRepresentationsAtPath, but for textures that I just tried to convert to sprite, it returns an empty array :
TextureImporter textureImporter = (TextureImporter)AssetImporter.GetAtPath(relativeFile.Path);
TextureImporterSettings importerSettings = new TextureImporterSettings();
textureImporter.ReadTextureSettings(importerSettings);
textureImporter.spritePackingTag = "atlasName";
importerSettings.ApplyTextureType(TextureImporterType.Sprite, true);
importerSettings.spriteMeshType = SpriteMeshType.Tight;
importerSettings.spritePixelsPerUnit = 1;
importerSettings.spriteAlignment = (int)SpriteAlignment.TopLeft;
textureImporter.SetTextureSettings(importerSettings);
AssetDatabase.ImportAsset(relativeFile.Path, ImportAssetOptions.ForceUpdate);
UnityEngine.Object[] sprites = AssetDatabase.LoadAllAssetRepresentationsAtPath(relativeFile.Path); // sprites = []
I tried different options for the ImportAssetOptions parameter, but Unity doesn't seem to care and my texture is not actually converted to sprite before my importer script returns.
Does anyone know of a workaround ?
I too would like an answer to this! Seems like it works in Unity 5 but not latest
Answer by hexagonius · Dec 07, 2018 at 11:25 AM
Why don't you move the import logic to the OnPreProcess methods available for the specific types and then run the final logic in OnPostprocessAllAssets when everything is done already.
Your answer
![](https://koobas.hobune.stream/wayback/20220612080005im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
OnPostprocessTexture TextureImporter.spritePivot doesn't seem to work. 1 Answer
How to animate 2d characater Avatar (Portrait) whit dynamic changes. 0 Answers
change my sprite during the work (reuse it) 1 Answer
how to prevent a object to go out of radius 2D 2 Answers
Ideal resolutions for 2D platformer Art Assets (to make multi-res support easier)? 2 Answers