private void SetMaterialProp(Material mat, UBER_MaterialProp prop) { string propName = prop.name; //Debug.Log (mat + " " + propName + " " + prop.type); if (mat.HasProperty(propName)) { if (prop.type == ShaderUtil.ShaderPropertyType.Float || prop.type == ShaderUtil.ShaderPropertyType.Range) { mat.SetFloat(propName, prop.floatValue); } else if (prop.type == ShaderUtil.ShaderPropertyType.Color) { mat.SetColor(propName, prop.colorValue); } else if (prop.type == ShaderUtil.ShaderPropertyType.Vector) { mat.SetVector(propName, prop.vectorValue); } else if (prop.type == ShaderUtil.ShaderPropertyType.TexEnv) { mat.SetTexture(propName, prop.textureValue); mat.SetTextureOffset(propName, prop.textureOffset); mat.SetTextureScale(propName, prop.textureScale); } } }
private void CopyValues(UBER_MaterialProp source, UBER_MaterialProp target) { target.type = source.type; target.name = source.name; target.floatValue = source.floatValue; target.colorValue = source.colorValue; target.vectorValue = source.vectorValue; target.textureValue = source.textureValue; target.textureOffset = source.textureOffset; target.textureScale = source.textureScale; }
public UBER_MaterialProp[] GetMaterialProps(Material mat) { if (mat == null) { return(null); } int cnt = ShaderUtil.GetPropertyCount(mat.shader); if (cnt == 0) { return(null); } UBER_MaterialProp[] props = new UBER_MaterialProp[cnt]; for (int i = 0; i < cnt; i++) { props[i] = new UBER_MaterialProp(); props[i].name = ShaderUtil.GetPropertyName(mat.shader, i); ShaderUtil.ShaderPropertyType propType = ShaderUtil.GetPropertyType(mat.shader, i); props[i].type = propType; if (propType == ShaderUtil.ShaderPropertyType.Color) { props[i].colorValue = mat.GetColor(props[i].name); } else if (propType == ShaderUtil.ShaderPropertyType.Float || propType == ShaderUtil.ShaderPropertyType.Range) { props[i].floatValue = mat.GetFloat(props[i].name); } else if (ShaderUtil.GetPropertyType(mat.shader, i) == ShaderUtil.ShaderPropertyType.Vector) { props[i].vectorValue = mat.GetVector(props[i].name); } else if (ShaderUtil.GetPropertyType(mat.shader, i) == ShaderUtil.ShaderPropertyType.TexEnv) { props[i].textureValue = mat.GetTexture(props[i].name); props[i].textureOffset = mat.GetTextureOffset(props[i].name); props[i].textureScale = mat.GetTextureScale(props[i].name); } } return(props); }