我有一个小的统一编辑器脚本,可以从统一获取资产预览并将它们保存到文件夹中。它适用于我的机器,但它不适用于具有相同项目的另一台机器。 这是我使用的代码:
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
。有任何想法吗 ?
答案 0 :(得分:0)
我知道这是一篇很老的帖子,但我一直在努力解决同样的问题,对我来说似乎工作得很好的是以下代码:
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(prefab), ImportAssetOptions.ForceUpdate);
这会对大型资产数据库造成一点滞后,但不会太多。
解决此问题的另一种方法是使用:
EditorUtility.SetDirty(prefab);
但这太快了......
检查两者并查看哪一个符合您的需求,但我会选择第一个。