// Constructor
        public ParameterSettings(int hash, ParameterDefaults defs, ref int paramCount, AnimatorControllerParameterType paramType)
        {
            this.hash      = hash;
            this.paramType = paramType;

            switch (paramType)
            {
            case AnimatorControllerParameterType.Float:
                include      = defs.includeFloats;
                interpolate  = defs.interpolateFloats;
                extrapolate  = defs.extrapolateFloats;
                defaultValue = (float)defs.defaultFloat;
                fcrusher     = new LiteFloatCrusher(LiteFloatCompressType.Half16, 0, 1, true);
                break;

            case AnimatorControllerParameterType.Int:
                include      = defs.includeInts;
                interpolate  = defs.interpolateInts;
                extrapolate  = defs.extrapolateInts;
                defaultValue = (int)defs.defaultInt;
                icrusher     = new LiteIntCrusher();
                break;

            case AnimatorControllerParameterType.Bool:
                include      = defs.includeBools;
                interpolate  = ParameterInterpolation.Hold;
                extrapolate  = ParameterExtrapolation.Hold;
                defaultValue = (bool)defs.defaultBool;
                break;

            case AnimatorControllerParameterType.Trigger:
                include      = defs.includeTriggers;
                interpolate  = ParameterInterpolation.Default;
                extrapolate  = ParameterExtrapolation.Default;
                defaultValue = (bool)defs.defaultTrigger;
                break;

            default:
                break;
            }
        }
        private void DrawDefaults(AnimatorControllerParameterType type, ref SmartVar v)
        {
            Rect r = EditorGUILayout.GetControlRect(GUILayout.MaxWidth(COL4));

            //EditorGUI.LabelField(r, defGC, (GUIStyle)"MiniLabel");

            if (type == AnimatorControllerParameterType.Float)
            {
                var newv = EditorGUI.FloatField(r, defGC, v.Float, new GUIStyle("MiniTextField")
                {
                    margin = new RectOffset(0, 0, 0, 0)
                });
                if (newv != v)
                {
                    Undo.RecordObject(target, "Modify Sync Animator");
                    v = newv;
                }
            }
            else if (type == AnimatorControllerParameterType.Int)
            {
                var newv = EditorGUI.IntField(r, defGC, v.Int, new GUIStyle("MiniTextField")
                {
                    margin = new RectOffset(0, 0, 0, 0)
                });
                if (newv != v)
                {
                    Undo.RecordObject(target, "Modify Sync Animator");
                    v = newv;
                }
            }
            else
            {
                var newv = EditorGUI.Toggle(r, defGC, v.Bool);
                if (newv != v)
                {
                    Undo.RecordObject(target, "Modify Sync Animator");
                    v = newv;
                }
            }
        }
 public static StringBuilder _Blu(this StringBuilder sb, SmartVar text)
 {
     return(sb.Append("<color=blue>").Append(text.ToString()).Append("</color>"));
 }
 public static StringBuilder _Mag(this StringBuilder sb, SmartVar text)
 {
     return(sb.Append("<color=magenta>").Append(text.ToString()).Append("</color>"));
 }
 public static StringBuilder _IB(this StringBuilder sb, SmartVar text)
 {
     return(sb.Append("<i><b>").Append(text.ToString()).Append("</b></i>"));
 }
 public static StringBuilder _(this StringBuilder sb, SmartVar text)
 {
     return(sb.Append(text.ToString()));
 }
 public static StringBuilder _GrnB_(this StringBuilder sb, SmartVar text)
 {
     return(sb.Append("<b><color=green>").Append(text.ToString()).Append("</color></b>"));
 }