public SetMaterialPrefixRecord(string prefix0, bool isPrefix0, int phase0, SetMaterialPrefixDelegate setter0) { prefix = prefix0; isPrefix = isPrefix0; phase = phase0; setter = setter0; }
public static void UpdateMaterial(this Material material, JToken materialData) { //Debug.Log("BridgeExtensions: Material: UpdateMaterial: material: " + material + " materialData: " + materialData.GetType() + " " + materialData); JObject obj = materialData as JObject; if (obj == null) { Debug.LogError("BridgeExtensions: Material: UpdateMaterial: expected object!"); return; } // Keys must be handled in order of their phase. int phases = 4; // Keep in sync with max phase + 1. for (int phase = 0; phase < phases; phase++) { foreach (JProperty property in obj.Properties()) { string key = property.Name; JToken valueToken = (JToken)property.Value; //Debug.Log("BridgeExtensions: Material: phase: " + phase + " Key: " + key); for (int i = 0, n = materialKeyPrefixes.Count; i < n; i++) { if (materialKeyPrefixes[i].phase != phase) { continue; } string keyPrefix = materialKeyPrefixes[i].prefix; if (key.StartsWith(keyPrefix)) { string name = key.Substring(keyPrefix.Length); if (!materialKeyPrefixes[i].isPrefix && (name.Length > 0)) { Debug.LogError("BridgeExtensions: UpdateMaterial: key: " + key + " should not have suffix name: " + name); } else { SetMaterialPrefixDelegate setter = materialKeyPrefixes[i].setter; setter(material, name, valueToken); } break; } } } } }