Example #1
0
    public override void OnInspectorGUI()
    {
        MegaHose mod = (MegaHose)target;

        EditorGUIUtility.LookLikeControls();

        mod.dolateupdate    = EditorGUILayout.Toggle("Do Late Update", mod.dolateupdate);
        mod.InvisibleUpdate = EditorGUILayout.Toggle("Invisible Update", mod.InvisibleUpdate);

        mod.wiretype       = (MegaHoseType)EditorGUILayout.EnumPopup("Wire Type", mod.wiretype);
        mod.segments       = EditorGUILayout.IntField("Segments", mod.segments);
        mod.capends        = EditorGUILayout.Toggle("Cap Ends", mod.capends);
        mod.calcnormals    = EditorGUILayout.Toggle("Calc Normals", mod.calcnormals);
        mod.calctangents   = EditorGUILayout.Toggle("Calc Tangents", mod.calctangents);
        mod.optimize       = EditorGUILayout.Toggle("Optimize", mod.optimize);
        mod.recalcCollider = EditorGUILayout.Toggle("Calc Collider", mod.recalcCollider);

        switch (mod.wiretype)
        {
        case MegaHoseType.Round:
            mod.rnddia   = EditorGUILayout.FloatField("Diameter", mod.rnddia);
            mod.rndsides = EditorGUILayout.IntField("Sides", mod.rndsides);
            mod.rndrot   = EditorGUILayout.FloatField("Rotate", mod.rndrot);
            break;

        case MegaHoseType.Rectangle:
            mod.rectwidth       = EditorGUILayout.FloatField("Width", mod.rectwidth);
            mod.rectdepth       = EditorGUILayout.FloatField("Depth", mod.rectdepth);
            mod.rectfillet      = EditorGUILayout.FloatField("Fillet", mod.rectfillet);
            mod.rectfilletsides = EditorGUILayout.IntField("Fillet Sides", mod.rectfilletsides);
            mod.rectrotangle    = EditorGUILayout.FloatField("Rotate", mod.rectrotangle);
            break;

        case MegaHoseType.DSection:
            mod.dsecwidth       = EditorGUILayout.FloatField("Width", mod.dsecwidth);
            mod.dsecdepth       = EditorGUILayout.FloatField("Depth", mod.dsecdepth);
            mod.dsecrndsides    = EditorGUILayout.IntField("Rnd Sides", mod.dsecrndsides);
            mod.dsecfillet      = EditorGUILayout.FloatField("Fillet", mod.dsecfillet);
            mod.dsecfilletsides = EditorGUILayout.IntField("Fillet Sides", mod.dsecfilletsides);
            mod.dsecrotangle    = EditorGUILayout.FloatField("Rotate", mod.dsecrotangle);
            break;
        }

        mod.uvscale = EditorGUILayout.Vector2Field("UV Scale", mod.uvscale);

        if (GUI.changed)
        {
            mod.updatemesh   = true;
            mod.rebuildcross = true;
        }

        mod.custnode  = (GameObject)EditorGUILayout.ObjectField("Start Object", mod.custnode, typeof(GameObject), true);
        mod.offset    = EditorGUILayout.Vector3Field("Offset", mod.offset);
        mod.rotate    = EditorGUILayout.Vector3Field("Rotate", mod.rotate);
        mod.scale     = EditorGUILayout.Vector3Field("Scale", mod.scale);
        mod.custnode2 = (GameObject)EditorGUILayout.ObjectField("End Object", mod.custnode2, typeof(GameObject), true);
        mod.offset1   = EditorGUILayout.Vector3Field("Offset", mod.offset1);
        mod.rotate1   = EditorGUILayout.Vector3Field("Rotate", mod.rotate1);
        mod.scale1    = EditorGUILayout.Vector3Field("Scale", mod.scale1);

        mod.flexon    = EditorGUILayout.BeginToggleGroup("Flex On", mod.flexon);
        mod.flexstart = EditorGUILayout.Slider("Start", mod.flexstart, 0.0f, 1.0f);
        mod.flexstop  = EditorGUILayout.Slider("Stop", mod.flexstop, 0.0f, 1.0f);

        if (mod.flexstart > mod.flexstop)
        {
            mod.flexstart = mod.flexstop;
        }

        if (mod.flexstop < mod.flexstart)
        {
            mod.flexstop = mod.flexstart;
        }

        mod.flexcycles   = EditorGUILayout.IntField("Cycles", mod.flexcycles);
        mod.flexdiameter = EditorGUILayout.FloatField("Diameter", mod.flexdiameter);

        EditorGUILayout.EndToggleGroup();

        mod.usebulgecurve = EditorGUILayout.BeginToggleGroup("Use Bulge Curve", mod.usebulgecurve);
        mod.bulge         = EditorGUILayout.CurveField("Bulge", mod.bulge);
        mod.bulgeamount   = EditorGUILayout.FloatField("Bulge Amount", mod.bulgeamount);
        mod.bulgeoffset   = EditorGUILayout.FloatField("Bulge Offset", mod.bulgeoffset);

        mod.animatebulge = EditorGUILayout.BeginToggleGroup("Animate", mod.animatebulge);
        mod.bulgespeed   = EditorGUILayout.FloatField("Speed", mod.bulgespeed);
        mod.minbulge     = EditorGUILayout.FloatField("Min", mod.minbulge);
        mod.maxbulge     = EditorGUILayout.FloatField("Max", mod.maxbulge);
        EditorGUILayout.EndToggleGroup();

        EditorGUILayout.EndToggleGroup();

        mod.tension1 = EditorGUILayout.FloatField("Tension Start", mod.tension1);
        mod.tension2 = EditorGUILayout.FloatField("Tension End", mod.tension2);

        mod.freecreate  = EditorGUILayout.BeginToggleGroup("Free Create", mod.freecreate);
        mod.noreflength = EditorGUILayout.FloatField("Free Length", mod.noreflength);
        EditorGUILayout.EndToggleGroup();

        mod.up            = EditorGUILayout.Vector3Field("Up", mod.up);
        mod.displayspline = EditorGUILayout.Toggle("Display Spline", mod.displayspline);

        if (GUI.changed)                //rebuild )
        {
            mod.updatemesh = true;
            mod.Rebuild();
        }
    }