Beispiel #1
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();
        }