Example #1
0
    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);
            }
        }
    }
Example #2
0
 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;
 }
Example #3
0
    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);
    }