//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(); }
//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(); }
//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(); }