public MaterialPropertyReference(Renderer renderer, string propName, MaterialPropertyValueType valueType, MaterialPropertyValueTypeMember member = MaterialPropertyValueTypeMember.None)
 {
     _material     = renderer;
     _propertyName = propName;
     _valueType    = valueType;
     _member       = member;
 }
        private static VariantType GetVariantType(MaterialPropertyValueType evtp, MaterialPropertyValueTypeMember emtp)
        {
            switch (evtp)
            {
            case MaterialPropertyValueType.Float:
                return(VariantType.Float);

            case MaterialPropertyValueType.Color:
            {
                switch (emtp)
                {
                case MaterialPropertyValueTypeMember.None:
                    return(VariantType.Color);

                default:
                    return(VariantType.Float);
                }
            }

            case MaterialPropertyValueType.Vector:
            {
                switch (emtp)
                {
                case MaterialPropertyValueTypeMember.None:
                    return(VariantType.Vector4);

                default:
                    return(VariantType.Float);
                }
            }

            default:
                return(VariantType.Float);
            }
        }
        private static System.Type GetType(MaterialPropertyValueType evtp, MaterialPropertyValueTypeMember emtp)
        {
            switch (evtp)
            {
            case MaterialPropertyValueType.Float:
                return(typeof(float));

            case MaterialPropertyValueType.Color:
            {
                switch (emtp)
                {
                case MaterialPropertyValueTypeMember.None:
                    return(typeof(UnityEngine.Color));

                default:
                    return(typeof(float));
                }
            }

            case MaterialPropertyValueType.Vector:
            {
                switch (emtp)
                {
                case MaterialPropertyValueTypeMember.None:
                    return(typeof(UnityEngine.Vector4));

                default:
                    return(typeof(float));
                }
            }

            default:
                return(typeof(float));
            }
        }
 public PropInfo(string nm, MaterialPropertyValueType valueType, MaterialPropertyValueTypeMember memberType = MaterialPropertyValueTypeMember.None)
 {
     Name       = nm;
     ValueType  = valueType;
     MemberType = memberType;
 }