【问题标题】:GetAssetPreview always returns nullGetAssetPreview 总是返回 null
【发布时间】:2017-06-28 09:57:00
【问题描述】:

我有一个小的统一编辑器脚本,可以从统一获取资产预览并将它们保存到文件夹中。它适用于我的机器,但它不适用于具有相同项目的另一台机器。 这是我使用的代码:

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。有任何想法吗 ?

【问题讨论】:

    标签: c# unity3d thumbnails


    【解决方案1】:

    我知道这是一篇旧帖子,但我一直在努力解决同样的问题,而对我来说似乎非常有效的是以下代码:

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

    这会对大型资产数据库造成一点延迟,但不会太多。

    解决此问题的另一种方法是使用:

    EditorUtility.SetDirty(prefab);
    

    然而这太慢了......

    检查两者,看看哪一个适合您的需求,但我会选择第一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-04
      • 2016-11-02
      • 2014-05-06
      • 2012-06-05
      • 2014-05-30
      • 2014-02-23
      • 2017-10-12
      • 2013-08-16
      相关资源
      最近更新 更多