private void UpdateMaterialList()

in unity/Assets/Scripts/Randomizers/MaterialFixedHueRandomizer.cs [139:176]


    private void UpdateMaterialList() {
        initial_colors_.Clear();
        MeshRenderer[] renderers = GetComponentsInChildren<MeshRenderer>();
        string[] prefixes = material_prefix_.Split(new char[] { ',' }, System.StringSplitOptions.RemoveEmptyEntries);
        string[] blacklist = material_blacklist_prefix_.Split(new char[] { ',' },
                                                              System.StringSplitOptions.RemoveEmptyEntries);

        foreach (MeshRenderer mesh_renderer in renderers) {
            foreach (Material material in mesh_renderer.materials) {
                // Ignore if name on blacklisted prefix list.
                bool blacklisted = false;
                foreach (string blacklist_prefix in blacklist) {
                    if (material.name.StartsWith(blacklist_prefix, System.StringComparison.Ordinal)) {
                        blacklisted = true;
                        break;
                    }
                }
                if (!blacklisted) {
                    // Process if name matches the allowed prefix list.
                    foreach (string prefix in prefixes) {
                        if (material.name.StartsWith(prefix, System.StringComparison.Ordinal)) {
                            HSVMaterial hsvm = new HSVMaterial();
                            Color.RGBToHSV(material.color, out hsvm.h, out hsvm.s, out hsvm.v);
                            // If this is an emissive material with emission set up,
                            // cache the original emissive value.
                            if (material.IsKeywordEnabled("_EMISSION") && material.HasProperty("_EmissionColor")) {
                                hsvm.e = material.GetColor("_EmissionColor").a;
                            } else {
                                hsvm.e = 0.0f;
                            }
                            hsvm.m = material;
                            initial_colors_.Add(hsvm);
                        }
                    }
                }
            }
        }
    }