GetAssetPreview总是返回null
问题描述:
我有一个小的统一编辑器脚本,可以从统一获取资产预览并将它们保存到文件夹中。它适用于我的机器,但它不适用于具有相同项目的另一台机器。 这里是我使用的代码: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);
这将导致有点滞后了大型资产数据库,但不是太多。
解决这个问题的另一种方法是使用:
EditorUtility.SetDirty(prefab);
但是,这是SOOO慢得多......
同时检查,看看哪一个适合您的需求,但我会与去第一。