うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】テクスチャやスプライトのサムネイルが表示されない

特定の Unity バージョンで、テクスチャやスプライトを設定する際に表示されるウィンドウで、サムネイルが正しく表示されない現象が発生しています。

初めは Unity のキャッシュの変更が原因かと考えていましたが、実際にはバグで表示されていないようでした。

Issue Tracker を見てみると以下のバージョン以降でこの問題が修正されていることが確認できました。

バグの詳細は Unity のIssue Trackerで確認できます

対応策

UnityEditorがキャッシュしていれば正常に表示されるため、以下のように無理やりロードしてキャッシュすることで、バグのあるバージョンでもサムネイルが正しく表示されるようになります。

private static List<Sprite> _cache;

[MenuItem("Tools/CacheThumbnail")]
private static void Cache()
{
    _cache = new List<Sprite>();
    var loadGUIDs = AssetDatabase.FindAssets("t:Sprite", new string[] {"Assets"});
    foreach (var guid in loadGUIDs)
    {
        var path = AssetDatabase.GUIDToAssetPath(guid);
        _cache.Add(AssetDatabase.LoadAssetAtPath<Sprite>(path));
    }
}