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);
}
}
}
}
}
}