2017-02-10 14 views
1

私はユニティからアセットプレビューを取得し、それらをフォルダに保存する小さな統一エディタスクリプトを持っています。私のマシンでうまく動作しますが、同じプロジェクトを持つ別のマシンではうまく動作しません。ここ は、私が使用するコードです:GetAssetPreviewは常にnullを返します

GameObject[] objs = Resources.LoadAll<GameObject>(""); 
foreach (GameObject obj in objs) 
{ 
    Texture2D previewImage = null; 
    while (previewImage == null) 
    { 
     previewImage = AssetPreview.GetAssetPreview(obj); 
     Thread.Sleep(100); 
    } 
    System.IO.File.WriteAllBytes(previewImage.name + ".png", previewImage.EncodeToPNG()); 
} 

コードは、それがpreviewImage == null言う無限ループに留まります。何か案は ?これは、のために遅れのビットを引き起こします

AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(prefab), ImportAssetOptions.ForceUpdate); 

答えて

0

私はこれは古い記事ですけど、私は同じ問題で苦労されており、何が私のために本当によく働くようでは、次のコードです大規模な資産データベースが、それほど多くはありません。

この問題を解決する別の方法が使用することです:

EditorUtility.SetDirty(prefab); 

しかし、これはすっごくはるかに遅いです...

の両方をチェックして、自分のニーズに合った1参照、しかし、私は行くだろう最初の1つ。

関連する問題