public void AddValuesToList(List <ShaderPropertyValue> allValues) { if (allValues.Count == 0) { return; } ShaderPropertiesList newList = new ShaderPropertiesList(); for (int i = 0; i < allValues.Count; i++) { newList.values.Add(new ShaderPropertyValue(allValues[i])); } states.Add(newList); }
public void SetUpInit() { for (int i = 0; i < states.Count; ++i) { ShaderPropertiesList currentState = states[i]; List <ShaderPropertyValue> values = currentState.values; for (int j = 0; j < values.Count; j++) { ShaderPropertyValue currentValue = values[j]; if (!originalShaderPropertiesValues.Contains(currentValue)) { ShaderPropertyValue newValue = new ShaderPropertyValue(); newValue.valueName = currentValue.valueName; newValue.type = currentValue.type; switch (currentValue.type) { case ShaderParameterType.Color: newValue.colorValue = mat.GetColor(currentValue.valueName); break; case ShaderParameterType.TexEnv: newValue.textureValue = mat.GetTexture(currentValue.valueName) as Texture2D; break; case ShaderParameterType.Vector: newValue.vectorValue = mat.GetVector(currentValue.valueName); break; default: newValue.floatValue = mat.GetFloat(currentValue.valueName); break; } originalShaderPropertiesValues.Add(newValue); } } } }