// Save shaders to preserve void FindShader(GameObject gameObject, ShaderToChange shader, int level) { if (gameObject.name.Equals(shader.name, StringComparison.Ordinal)) { AddShadersToList(gameObject, shader.shaders); } else { if (level < (shader.path.Count - 1)) { foreach (Transform child in gameObject.transform) { if (child.gameObject.name.Equals(shader.path[level + 1], StringComparison.Ordinal)) { FindShader(child.gameObject, shader, level + 1); } } } } }
public LOShaders(EditorFacility facility, EditorLevel level, GameObject[] gameObjects) { List <ShaderToChange> shadersToFind = new List <ShaderToChange>(); List <string> defaultShaders = new List <string>() { "KSP/Emissive/Specular", "KSP/Emissive/Bumped", "KSP/Emissive/Diffuse" }; if (facility == EditorFacility.VAB) { switch (level) { case EditorLevel.Level1: { //INTERIOR_VAB_lev2 1_MeshPart1 ShaderToChange shader = new ShaderToChange(); shader.path.Add("VAB_lev1_interior"); shader.path.Add("INTERIOR_VAB_lev2 1"); shader.name = "INTERIOR_VAB_lev2 1_MeshPart1"; shader.shaders = new List <string>(defaultShaders); shadersToFind.Add(shader); break; } case EditorLevel.Level2: // shader.path.Add("VAB_lev3_mainStructure"); break; case EditorLevel.Level3: for (int i = 0; i < 3; i++) { ShaderToChange shader = new ShaderToChange(); shader.path.Add("VAB_Interior_Geometry"); shader.shaders = new List <string>(defaultShaders); switch (i) { case 0: shader.name = "model_vab_interior_props_v16"; break; case 1: shader.name = "model_vab_walls"; break; case 2: shader.name = "model_vab_windows"; break; } shadersToFind.Add(shader); } break; } } else if (facility == EditorFacility.SPH) { switch (level) { case EditorLevel.Level1: { ShaderToChange shader = new ShaderToChange(); shader.path.Add("SPH-1_Interior"); shader.name = "group37_polySurface813"; shader.shaders = new List <string>(defaultShaders); shadersToFind.Add(shader); break; } case EditorLevel.Level2: for (int i = 0; i < 3; i++) { ShaderToChange shader = new ShaderToChange(); shader.shaders = new List <string>(defaultShaders); switch (i) { case 0: shader.path.Add("SPH_2_interior"); shader.name = "SPH_2_windows"; break; case 1: shader.path.Add("SPH_2_interior"); shader.name = "SPH_2_door3"; break; case 2: shader.path.Add("SPH_2_interior"); shader.name = "SPH_2_door4"; break; } shadersToFind.Add(shader); } break; case EditorLevel.Level3: for (int i = 0; i < 2; i++) { ShaderToChange shader = new ShaderToChange(); shader.path.Add("SPH_Interior_Geometry"); shader.shaders = new List <string>(defaultShaders); switch (i) { case 0: shader.name = "model_sph_interior_main_v16"; break; case 1: shader.path.Add("model_sph_interior_gates_v16"); shader.name = "Component_755_1"; break; } shadersToFind.Add(shader); } break; } } foreach (ShaderToChange shader in shadersToFind) { foreach (GameObject gameObject in gameObjects) { FindShader(gameObject, shader, 0); } } }
// Save shaders to preserve void FindShader(GameObject gameObject, ShaderToChange shader, int level) { if (gameObject.name.Equals(shader.name, StringComparison.Ordinal)) { AddShadersToList(gameObject, shader.shaders); } else { if (level < (shader.path.Count - 1)) { foreach (Transform child in gameObject.transform) { if (child.gameObject.name.Equals(shader.path[level + 1], StringComparison.Ordinal)) { FindShader(child.gameObject, shader, level + 1); } } } } }
public LOShaders(EditorFacility facility, EditorLevel level, GameObject[] gameObjects) { List<ShaderToChange> shadersToFind = new List<ShaderToChange>(); List<string> defaultShaders = new List<string>() { "KSP/Emissive/Specular", "KSP/Emissive/Bumped", "KSP/Emissive/Diffuse" }; if (facility == EditorFacility.VAB) { switch (level) { case EditorLevel.Level1: { //INTERIOR_VAB_lev2 1_MeshPart1 ShaderToChange shader = new ShaderToChange(); shader.path.Add("VAB_lev1_interior"); shader.path.Add("INTERIOR_VAB_lev2 1"); shader.name = "INTERIOR_VAB_lev2 1_MeshPart1"; shader.shaders = new List<string>(defaultShaders); shadersToFind.Add(shader); break; } case EditorLevel.Level2: // shader.path.Add("VAB_lev3_mainStructure"); break; case EditorLevel.Level3: for (int i = 0; i < 3; i++) { ShaderToChange shader = new ShaderToChange(); shader.path.Add("VAB_Interior_Geometry"); shader.shaders = new List<string>(defaultShaders); switch (i) { case 0: shader.name = "model_vab_interior_props_v16"; break; case 1: shader.name = "model_vab_walls"; break; case 2: shader.name = "model_vab_windows"; break; } shadersToFind.Add(shader); } break; } } else if (facility == EditorFacility.SPH) { switch (level) { case EditorLevel.Level1: { ShaderToChange shader = new ShaderToChange(); shader.path.Add("SPH-1_Interior"); shader.name = "group37_polySurface813"; shader.shaders = new List<string>(defaultShaders); shadersToFind.Add(shader); break; } case EditorLevel.Level2: for (int i = 0; i < 3; i++) { ShaderToChange shader = new ShaderToChange(); shader.shaders = new List<string>(defaultShaders); switch (i) { case 0: shader.path.Add("SPH_2_interior"); shader.name = "SPH_2_windows"; break; case 1: shader.path.Add("SPH_2_interior"); shader.name = "SPH_2_door3"; break; case 2: shader.path.Add("SPH_2_interior"); shader.name = "SPH_2_door4"; break; } shadersToFind.Add(shader); } break; case EditorLevel.Level3: for (int i = 0; i < 2; i++) { ShaderToChange shader = new ShaderToChange(); shader.path.Add("SPH_Interior_Geometry"); shader.shaders = new List<string>(defaultShaders); switch (i) { case 0: shader.name = "model_sph_interior_main_v16"; break; case 1: shader.path.Add("model_sph_interior_gates_v16"); shader.name = "Component_755_1"; break; } shadersToFind.Add(shader); } break; } } foreach (ShaderToChange shader in shadersToFind) { foreach (GameObject gameObject in gameObjects) { FindShader(gameObject, shader, 0); } } }