diff --git a/Runtime/Scripts/SceneImporter/ImporterMeshes.cs b/Runtime/Scripts/SceneImporter/ImporterMeshes.cs index c91787e35..2bad85089 100644 --- a/Runtime/Scripts/SceneImporter/ImporterMeshes.cs +++ b/Runtime/Scripts/SceneImporter/ImporterMeshes.cs @@ -159,10 +159,10 @@ protected virtual async Task ConstructDracoMesh(GLTFMesh mesh, int meshIndex, Ca // TODO: check if normals and tangents are needed #pragma warning disable 0219 - bool needsNormals = _options.ImportNormals != GLTFImporterNormals.None; - bool needsTangents = _options.ImportTangents != GLTFImporterNormals.None; + bool needsTangents = _options.ImportTangents != GLTFImporterNormals.None ; + bool needsNormals = _options.ImportNormals != GLTFImporterNormals.None || needsTangents; #pragma warning restore 0219 - + var draco = new DracoMeshLoader(); dracoDecodeResults[i] = await draco.ConvertDracoMeshToUnity(meshDataArray[i], bufferViewData, @@ -276,6 +276,8 @@ protected void ApplyImportOptionsOnMesh(Mesh mesh) mesh.RecalculateNormals(); else if (_options.ImportNormals == GLTFImporterNormals.Import && mesh.normals.Length == 0 && mesh.GetTopology(0) == MeshTopology.Triangles) mesh.RecalculateNormals(); + else if (_options.ImportTangents != GLTFImporterNormals.None && mesh.normals.Length == 0) + mesh.RecalculateNormals(); if (_options.ImportTangents == GLTFImporterNormals.None) mesh.tangents = new Vector4[0];