Siccity / GLTFUtility

Simple GLTF importer for Unity
MIT License
976 stars 217 forks source link

Editor importer broken in Unity 2021 - textures missing on models #218

Open stetttho opened 1 year ago

stetttho commented 1 year ago

After updating from Unity 2020 to 2021, on our gltf models the textures were missing. Seems to be a problem with Unity Method AssetDatabase.LoadAssetAtPath only accepting relative paths (like "Assets/xyz/model.gltf") and no full path anymore.

I fixed it temporarily by changing the method CreateTextureAsync in GLTFImage.cs:

public IEnumerator CreateTextureAsync(bool linear, Action<Texture2D> onFinish, Action<float> onProgress = null) {
                if (!string.IsNullOrEmpty(path)) {
                    string relativePath = path.Substring(path.IndexOf("Assets")); // get relative path and then pass it below
#if UNITY_EDITOR
                    // Load textures from asset database if we can
                    Texture2D assetTexture = UnityEditor.AssetDatabase.LoadAssetAtPath(relativePath, typeof(Texture2D)) as Texture2D;
                    if (assetTexture != null) {
                        onFinish(assetTexture);
                        if (onProgress != null) onProgress(1f);
                        yield break;
                    }
#endif