Beispiel #1
0
        //Distribute
        void DrawDistributeSection()
        {
            EditorGUILayout.LabelField("Bounds: Start/End", EditorStyles.boldLabel, GUILayout.Width(180));

            EditorGUILayout.BeginHorizontal();
            bTools.TransformComponent.TransformToolsWindow.distributeStartBounds = EditorGUILayout.ObjectField(string.Empty, (Object)bTools.TransformComponent.TransformToolsWindow.distributeStartBounds, typeof(UnityEngine.Transform), true, GUILayout.Width(92)) as UnityEngine.Transform;
            bTools.TransformComponent.TransformToolsWindow.distributeEndBounds   = EditorGUILayout.ObjectField(string.Empty, (Object)bTools.TransformComponent.TransformToolsWindow.distributeEndBounds, typeof(UnityEngine.Transform), true, GUILayout.Width(92)) as UnityEngine.Transform;
            EditorGUILayout.EndHorizontal();
            GUILayout.Space(2);

            EditorGUI.BeginDisabledGroup(distributeStartBounds == null || distributeEndBounds == null ? true : false);

            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Pos", GUILayout.Width(40), GUILayout.Height(16)))
            {
                if (!ValidateDistributeSelection())
                {
                    return;
                }

                TransformTools.DistributePosition(distributeStartBounds.position, distributeEndBounds.position, Selection.transforms);
            }

            if (GUILayout.Button("X", GUILayout.Width(40), GUILayout.Height(16)))
            {
                if (!ValidateDistributeSelection())
                {
                    return;
                }

                Undo.RecordObjects(Selection.transforms, "Transform Distribute");
                TransformTools.DistributeXPosition(distributeStartBounds.position, distributeEndBounds.position, Selection.transforms);
            }
            if (GUILayout.Button("Y", GUILayout.Width(40), GUILayout.Height(16)))
            {
                if (!ValidateDistributeSelection())
                {
                    return;
                }

                TransformTools.DistributeYPosition(distributeStartBounds.position, distributeEndBounds.position, Selection.transforms);
            }
            if (GUILayout.Button("Z", GUILayout.Width(40), GUILayout.Height(16)))
            {
                if (!ValidateDistributeSelection())
                {
                    return;
                }

                TransformTools.DistributeZPosition(distributeStartBounds.position, distributeEndBounds.position, Selection.transforms);
            }

            EditorGUILayout.EndHorizontal();

            if (GUILayout.Button("Rotation (Quaternion)", GUILayout.Width(172), GUILayout.Height(16)))
            {
                if (!ValidateDistributeSelection())
                {
                    return;
                }
                TransformTools.DistributeRotation(distributeStartBounds.rotation, distributeEndBounds.rotation, Selection.transforms);
            }

            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Scl", GUILayout.Width(40), GUILayout.Height(16)))
            {
                if (!ValidateDistributeSelection())
                {
                    return;
                }

                Undo.RecordObjects(Selection.transforms, "Transform Distribute");
                TransformTools.DistributeScale(distributeStartBounds.localScale, distributeEndBounds.localScale, Selection.transforms);
            }

            if (GUILayout.Button("X", GUILayout.Width(40), GUILayout.Height(16)))
            {
                if (!ValidateDistributeSelection())
                {
                    return;
                }

                Undo.RecordObjects(Selection.transforms, "Transform Distribute");
                TransformTools.DistributeXScale(distributeStartBounds.localScale.x, distributeEndBounds.localScale.x, Selection.transforms);
            }
            if (GUILayout.Button("Y", GUILayout.Width(40), GUILayout.Height(16)))
            {
                if (!ValidateDistributeSelection())
                {
                    return;
                }

                Undo.RecordObjects(Selection.transforms, "Transform Distribute");
                TransformTools.DistributeYScale(distributeStartBounds.localScale.y, distributeEndBounds.localScale.y, Selection.transforms);
            }
            if (GUILayout.Button("Z", GUILayout.Width(40), GUILayout.Height(16)))
            {
                if (!ValidateDistributeSelection())
                {
                    return;
                }

                Undo.RecordObjects(Selection.transforms, "Transform Distribute");
                TransformTools.DistributeZScale(distributeStartBounds.localScale.z, distributeEndBounds.localScale.z, Selection.transforms);
            }

            EditorGUILayout.EndHorizontal();

            EditorGUI.EndDisabledGroup();
        }
Beispiel #2
0
        //Noise
        void DrawNoiseSection()
        {
            GUILayout.Label("Noise range", EditorStyles.boldLabel, GUILayout.Width(180));

            EditorGUILayout.BeginHorizontal();
            EditorGUIUtility.labelWidth = 26;
            noiseMinMax.x = EditorGUILayout.FloatField("Min", noiseMinMax.x, GUILayout.Width(84));
            GUILayout.Space(-2);
            noiseMinMax.y = EditorGUILayout.FloatField("Max", noiseMinMax.y, GUILayout.Width(84));
            EditorGUILayout.EndHorizontal();

            GUILayout.Space(1);
            EditorGUIUtility.labelWidth = 50;
            noiseMode = (TransformTools.NoiseMode)EditorGUILayout.EnumPopup("Mode", noiseMode, GUILayout.Width(170));
            EditorGUIUtility.labelWidth = 0;

            EditorGUILayout.BeginHorizontal();
            GUILayout.Space(8);
            if (GUILayout.Button("Pos", GUILayout.Width(40), GUILayout.Height(16)))
            {
                Undo.RecordObjects(Selection.transforms, "Transform Noise");
                TransformTools.AddPosNoise(noiseMinMax.x, noiseMinMax.y, Selection.transforms, noiseMode);
            }
            if (GUILayout.Button("X", GUILayout.Width(40), GUILayout.Height(16)))
            {
                Undo.RecordObjects(Selection.transforms, "Transform Noise");
                TransformTools.AddXPosNoise(noiseMinMax.x, noiseMinMax.y, Selection.transforms, noiseMode);
            }
            if (GUILayout.Button("Y", GUILayout.Width(40), GUILayout.Height(16)))
            {
                Undo.RecordObjects(Selection.transforms, "Transform Noise");
                TransformTools.AddYPosNoise(noiseMinMax.x, noiseMinMax.y, Selection.transforms, noiseMode);
            }
            if (GUILayout.Button("Z", GUILayout.Width(40), GUILayout.Height(16)))
            {
                Undo.RecordObjects(Selection.transforms, "Transform Noise");
                TransformTools.AddZPosNoise(noiseMinMax.x, noiseMinMax.y, Selection.transforms, noiseMode);
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            GUILayout.Space(8);
            if (GUILayout.Button("Rot", GUILayout.Width(40), GUILayout.Height(16)))
            {
                Undo.RecordObjects(Selection.transforms, "Transform Noise");
                TransformTools.AddRotNoise(noiseMinMax.x, noiseMinMax.y, Selection.transforms, noiseMode);
            }
            if (GUILayout.Button("X", GUILayout.Width(40), GUILayout.Height(16)))
            {
                Undo.RecordObjects(Selection.transforms, "Transform Noise");
                TransformTools.AddXRotNoise(noiseMinMax.x, noiseMinMax.y, Selection.transforms, noiseMode);
            }
            if (GUILayout.Button("Y", GUILayout.Width(40), GUILayout.Height(16)))
            {
                Undo.RecordObjects(Selection.transforms, "Transform Noise");
                TransformTools.AddYRotNoise(noiseMinMax.x, noiseMinMax.y, Selection.transforms, noiseMode);
            }
            if (GUILayout.Button("Z", GUILayout.Width(40), GUILayout.Height(16)))
            {
                Undo.RecordObjects(Selection.transforms, "Transform Noise");
                TransformTools.AddZRotNoise(noiseMinMax.x, noiseMinMax.y, Selection.transforms, noiseMode);
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            GUILayout.Space(8);
            if (GUILayout.Button("Scl", GUILayout.Width(40), GUILayout.Height(16)))
            {
                Undo.RecordObjects(Selection.transforms, "Transform Noise");
                TransformTools.AddSclNoise(noiseMinMax.x, noiseMinMax.y, Selection.transforms, noiseMode);
            }
            if (GUILayout.Button("X", GUILayout.Width(40), GUILayout.Height(16)))
            {
                Undo.RecordObjects(Selection.transforms, "Transform Noise");
                TransformTools.AddXSclNoise(noiseMinMax.x, noiseMinMax.y, Selection.transforms, noiseMode);
            }
            if (GUILayout.Button("Y", GUILayout.Width(40), GUILayout.Height(16)))
            {
                Undo.RecordObjects(Selection.transforms, "Transform Noise");
                TransformTools.AddYSclNoise(noiseMinMax.x, noiseMinMax.y, Selection.transforms, noiseMode);
            }
            if (GUILayout.Button("Z", GUILayout.Width(40), GUILayout.Height(16)))
            {
                Undo.RecordObjects(Selection.transforms, "Transform Noise");
                TransformTools.AddZSclNoise(noiseMinMax.x, noiseMinMax.y, Selection.transforms, noiseMode);
            }

            EditorGUILayout.EndHorizontal();
        }
Beispiel #3
0
        //Align
        void DrawAlignSection()
        {
            EditorGUILayout.LabelField("Transform to align to", EditorStyles.boldLabel, GUILayout.Width(180));
            bTools.TransformComponent.TransformToolsWindow.targetAlignTransform = EditorGUILayout.ObjectField((Object)bTools.TransformComponent.TransformToolsWindow.targetAlignTransform, typeof(UnityEngine.Transform), true, GUILayout.Width(189)) as UnityEngine.Transform;
            EditorGUILayout.LabelField("Position", EditorStyles.boldLabel, GUILayout.Width(180));
            EditorGUILayout.BeginHorizontal();
            alignOptions[0] = GUILayout.Toggle(alignOptions[0], "X", "Button", GUILayout.Width(40), GUILayout.Height(16));
            alignOptions[1] = GUILayout.Toggle(alignOptions[1], "Y", "Button", GUILayout.Width(40), GUILayout.Height(16));
            alignOptions[2] = GUILayout.Toggle(alignOptions[2], "Z", "Button", GUILayout.Width(40), GUILayout.Height(16));

            if (alignOptions[0] && alignOptions[1] && alignOptions[2])
            {
                if (GUILayout.Button("None", GUILayout.Width(40), GUILayout.Height(16)))
                {
                    alignOptions[0] = false;
                    alignOptions[1] = false;
                    alignOptions[2] = false;
                }
            }

            else
            {
                if (GUILayout.Button("All", GUILayout.Width(40), GUILayout.Height(16)))
                {
                    alignOptions[0] = true;
                    alignOptions[1] = true;
                    alignOptions[2] = true;
                }
            }

            EditorGUILayout.EndHorizontal();
            EditorGUILayout.LabelField("Rotation", EditorStyles.boldLabel, GUILayout.Width(180));
            EditorGUILayout.BeginHorizontal();
            alignOptions[3] = GUILayout.Toggle(alignOptions[3], "X", "Button", GUILayout.Width(40), GUILayout.Height(16));
            alignOptions[4] = GUILayout.Toggle(alignOptions[4], "Y", "Button", GUILayout.Width(40), GUILayout.Height(16));
            alignOptions[5] = GUILayout.Toggle(alignOptions[5], "Z", "Button", GUILayout.Width(40), GUILayout.Height(16));

            if (alignOptions[3] && alignOptions[4] && alignOptions[5])
            {
                if (GUILayout.Button("None", GUILayout.Width(40), GUILayout.Height(16)))
                {
                    alignOptions[3] = false;
                    alignOptions[4] = false;
                    alignOptions[5] = false;
                }
            }

            else
            {
                if (GUILayout.Button("All", GUILayout.Width(40), GUILayout.Height(16)))
                {
                    alignOptions[3] = true;
                    alignOptions[4] = true;
                    alignOptions[5] = true;
                }
            }

            EditorGUILayout.EndHorizontal();

            EditorGUILayout.LabelField("Scale", EditorStyles.boldLabel, GUILayout.Width(180));
            EditorGUILayout.BeginHorizontal();
            alignOptions[6] = GUILayout.Toggle(alignOptions[6], "X", "Button", GUILayout.Width(40), GUILayout.Height(16));
            alignOptions[7] = GUILayout.Toggle(alignOptions[7], "Y", "Button", GUILayout.Width(40), GUILayout.Height(16));
            alignOptions[8] = GUILayout.Toggle(alignOptions[8], "Z", "Button", GUILayout.Width(40), GUILayout.Height(16));

            if (alignOptions[6] && alignOptions[7] && alignOptions[8])
            {
                if (GUILayout.Button("None", GUILayout.Width(40), GUILayout.Height(16)))
                {
                    alignOptions[6] = false;
                    alignOptions[7] = false;
                    alignOptions[8] = false;
                }
            }

            else
            {
                if (GUILayout.Button("All", GUILayout.Width(40), GUILayout.Height(16)))
                {
                    alignOptions[6] = true;
                    alignOptions[7] = true;
                    alignOptions[8] = true;
                }
            }
            EditorGUILayout.EndHorizontal();
            GUILayout.Space(2);
            EditorGUILayout.BeginHorizontal();
            EditorGUI.BeginDisabledGroup(targetAlignTransform == null ? true : false);

            if (GUILayout.Button("Apply align", GUILayout.Width(84), GUILayout.Height(18)))
            {
                Undo.RecordObjects(Selection.transforms, "Transform align");
                TransformTools.AlignTransforms(targetAlignTransform, Selection.transforms, alignOptions);
            }

            if (GUILayout.Button("Look At", GUILayout.Width(84), GUILayout.Height(18)))
            {
                Undo.RecordObjects(Selection.transforms, "Transform LookAt");
                for (int i = 0; i < Selection.transforms.Length; i++)
                {
                    Selection.transforms[i].LookAt(targetAlignTransform);
                }
            }

            EditorGUI.EndDisabledGroup();

            EditorGUILayout.EndHorizontal();
        }