Hi there,
I’m having trouble generating assets preview in PNG format with Unity 5.6.1p1 . I wrote this script who’s working well and generates png images for my assets and saves them on my file system.
The only thing that bother me is the image generated :
It seems like multiple assets from my game are being rendered, so I wonder if there is not a stream behind not being properly flushed or something like this…
Here’s the script behind :
void Start ()
{
var pPath = Application.dataPath + "/../Previews/";
var folders = ResourcesLoader.GetAllFoldersInEditorObject();
Directory.CreateDirectory(pPath);
foreach (var f in folders)
{
var cPath = pPath + f + "/";
Directory.CreateDirectory(cPath);
var objs = Resources.LoadAll<GameObject>("EditorObject/" + f);
foreach (var o in objs)
{
Texture2D t = null;
var counter = 0;
while (t == null && counter < 15)
{
t = AssetPreview.GetAssetPreview(o);
counter++;
Thread.Sleep(15);
}
Debug.Log("Get preview : " + o.name);
try
{
var bytes = t.EncodeToPNG();
using (var fs = new FileStream(cPath + o.name + ".png", FileMode.Create, FileAccess.Write))
{
fs.Write(bytes, 0, bytes.Length);
}
}
catch (Exception ex)
{
Debug.LogError("Cannot create file " + cPath + o.name + ".png");
}
}
break;
}
}
(I’ve put a break at the end of the first loop for testing purpose)
Is there anybody experiencing the same ?