From 4c8c410cccf0d17c934622d2ecdf4126009ffad6 Mon Sep 17 00:00:00 2001 From: Linx Date: Thu, 13 Feb 2025 19:00:26 +0000 Subject: [PATCH] Fix incorrect usage of .material on the scaled mesh, causing the material to be instantiated and invalidating any previous references to the sharedMaterial. --- SCANsat/SCANcontroller.cs | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/SCANsat/SCANcontroller.cs b/SCANsat/SCANcontroller.cs index f493d3816..0b0e2cdcd 100644 --- a/SCANsat/SCANcontroller.cs +++ b/SCANsat/SCANcontroller.cs @@ -1416,34 +1416,46 @@ internal void LoadVisualMapTexture(CelestialBody b, mapSource s) if (!readableScaledSpaceMaps.ContainsKey(b) || readableScaledSpaceMaps[b] == null) { - if (scaledMesh.material.shader.name == "Terrain/Gas Giant") + if (scaledMesh.sharedMaterial.shader.name == "Terrain/Gas Giant") { - if (scaledMesh.material.HasProperty("_DetailCloudPatternTexture")) - readableScaledSpaceMaps.Add(b, readableTexture(scaledMesh.material.GetTexture("_DetailCloudPatternTexture"), scaledMesh.material, true)); + if (scaledMesh.sharedMaterial.HasProperty("_DetailCloudPatternTexture")) + readableScaledSpaceMaps.Add(b, readableTexture(scaledMesh.sharedMaterial.GetTexture("_DetailCloudPatternTexture"), scaledMesh.sharedMaterial, true)); } - //else if (scaledMesh.material.shader.name == "Emissive Multi Ramp Sunspots") + //else if (scaledMesh.sharedMaterial.shader.name == "Emissive Multi Ramp Sunspots") //{ - // if (scaledMesh.material.HasProperty("_MainTex")) - // readableScaledSpaceMaps.Add(b, readableTexture(scaledMesh.material.GetTexture("_MainTex"), scaledMesh.material, true)); + // if (scaledMesh.sharedMaterial.HasProperty("_MainTex")) + // readableScaledSpaceMaps.Add(b, readableTexture(scaledMesh.sharedMaterial.GetTexture("_MainTex"), scaledMesh.sharedMaterial, true)); //} else { - if (scaledMesh.material.HasProperty("_MainTex")) - readableScaledSpaceMaps.Add(b, readableTexture(scaledMesh.material.GetTexture("_MainTex"), scaledMesh.material, true)); + if (scaledMesh.sharedMaterial.HasProperty("_MainTex")) + { + readableScaledSpaceMaps.Add(b, readableTexture(scaledMesh.sharedMaterial.GetTexture("_MainTex"), scaledMesh.sharedMaterial, true)); + } + else if (scaledMesh.sharedMaterial.HasProperty("_ColorMap")) + { + readableScaledSpaceMaps.Add(b, readableTexture(scaledMesh.sharedMaterial.GetTexture("_ColorMap"), scaledMesh.sharedMaterial, true)); + } } } if (!readableScaledSpaceNormalMaps.ContainsKey(b) || readableScaledSpaceNormalMaps[b] == null) { - if (scaledMesh.material.shader.name == "Terrain/Gas Giant") + if (scaledMesh.sharedMaterial.shader.name == "Terrain/Gas Giant") { - if (scaledMesh.material.HasProperty("_NormalMap")) - readableScaledSpaceNormalMaps.Add(b, readableTexture(scaledMesh.material.GetTexture("_NormalMap"), scaledMesh.material, false)); + if (scaledMesh.sharedMaterial.HasProperty("_NormalMap")) + readableScaledSpaceNormalMaps.Add(b, readableTexture(scaledMesh.sharedMaterial.GetTexture("_NormalMap"), scaledMesh.sharedMaterial, false)); } else { - if (scaledMesh.material.HasProperty("_BumpMap")) - readableScaledSpaceNormalMaps.Add(b, readableTexture(scaledMesh.material.GetTexture("_BumpMap"), scaledMesh.material, false)); + if (scaledMesh.sharedMaterial.HasProperty("_BumpMap")) + { + readableScaledSpaceNormalMaps.Add(b, readableTexture(scaledMesh.sharedMaterial.GetTexture("_BumpMap"), scaledMesh.sharedMaterial, false)); + } + else if (scaledMesh.sharedMaterial.HasProperty("_NormalMap")) + { + readableScaledSpaceNormalMaps.Add(b, readableTexture(scaledMesh.sharedMaterial.GetTexture("_NormalMap"), scaledMesh.sharedMaterial, false)); + } } }