コード例 #1
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        GUILayout.Label("-- Helper -------------------------");
        MaterialAnimHelper helper = target as MaterialAnimHelper;

        EditorGUI.BeginChangeCheck();
        helper.mat = EditorGUILayout.ObjectField("Material", helper.mat, typeof(Material), false) as Material;
        OnGUI_ShaderProps();
        if (EditorGUI.EndChangeCheck())
        {
            helper.UpdateAnim();
            EditorUtility.SetDirty(helper);
        }
    }
コード例 #2
0
    void OnGUI_ShaderProps()
    {
        MaterialAnimHelper helper = target as MaterialAnimHelper;

        if (helper == null)
        {
            return;
        }

        var mat = helper.mat;

        if (mat == null)
        {
            return;
        }

        var shader = mat.shader;

        if (shader == null)
        {
            return;
        }

        var propCount = ShaderUtil.GetPropertyCount(shader);

        if (propCount < 1)
        {
            return;
        }

        Dictionary <string, ShaderPropInfo> props = new Dictionary <string, ShaderPropInfo>();
        List <string> propNames = new List <string>();

        propNames.Add("None");
        for (int i = 0; i < propCount; i++)
        {
            var propType = ShaderUtil.GetPropertyType(shader, i);
            if (propType == ShaderUtil.ShaderPropertyType.TexEnv)
            {
                continue;
            }
            var propName = ShaderUtil.GetPropertyName(shader, i);
            propNames.Add(propName);
            props.Add(propName, new ShaderPropInfo()
            {
                index = i,
                type  = propType
            }
                      );
        }

        if (props.Count < 1)
        {
            return;
        }

        //prop1
        OnGUI_HelperPropInfo(shader, ref helper.propName1, ref helper.param1, ref helper.propType1, propNames, props, "Prop1");

        //prop2
        OnGUI_HelperPropInfo(shader, ref helper.propName2, ref helper.param2, ref helper.propType2, propNames, props, "Prop2");

        //prop3
        OnGUI_HelperPropInfo(shader, ref helper.propName3, ref helper.param3, ref helper.propType3, propNames, props, "Prop3");

        //prop4
        OnGUI_HelperPropInfo(shader, ref helper.propName4, ref helper.param4, ref helper.propType4, propNames, props, "Prop4");

        //prop5
        OnGUI_HelperPropInfo(shader, ref helper.propName5, ref helper.param5, ref helper.propType5, propNames, props, "Prop5");

        helper.InitShaderProp();
    }