Maybe fix base game shaders

This commit is contained in:
Nick 2022-03-09 15:57:20 -05:00
parent bf88a362c6
commit d1c6cb9efd
2 changed files with 20 additions and 0 deletions

View File

@ -23,6 +23,7 @@ namespace NewHorizons.Builder.Props
if (detail.assetBundle != null)
{
var prefab = PropBuildManager.LoadPrefab(detail.assetBundle, detail.path, uniqueModName, mod);
detailGO = MakeDetail(go, sector, prefab, detail.position, detail.rotation, detail.scale, detail.alignToNormal);
}
else if (detail.objFilePath != null)
@ -30,6 +31,7 @@ namespace NewHorizons.Builder.Props
try
{
var prefab = mod.ModHelper.Assets.Get3DObject(detail.objFilePath, detail.mtlFilePath);
PropBuildManager.ReplaceShaders(prefab);
prefab.SetActive(false);
detailGO = MakeDetail(go, sector, prefab, detail.position, detail.rotation, detail.scale, detail.alignToNormal);
}

View File

@ -104,7 +104,25 @@ namespace NewHorizons.Builder.Props
return null;
}
ReplaceShaders(prefab);
return prefab;
}
public static void ReplaceShaders(GameObject prefab)
{
foreach (var renderer in prefab.GetComponentsInChildren<Renderer>(true))
{
foreach (var material in renderer.sharedMaterials)
{
if (material == null)
{
continue;
}
material.shader = Shader.Find(material.shader.name);
}
}
}
}
}