コード例 #1
0
        public override void OnInspectorGUI()
        {
            // Check if not uneditable prefab.
            EditorGUI.BeginDisabledGroup(targetTransform != null && PrefabUtility.GetPrefabType(targetTransform) == PrefabType.ModelPrefab);

            #region Refresh
            serializedObject.Update();
            combinedScale = EditorPrefs.GetBool("bToolsCombinedScale");
            #endregion

            #region Additional Menus
            GUILayout.Space(4);               // Save/Load
            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button(string.Empty, Ressources.bToolsSkin.customStyles[2], GUILayout.Width(16), GUILayout.Height(16)))
            {
                Rect popupRect = new Rect(Event.current.mousePosition.x, -Event.current.mousePosition.y, 250, 110);
                PopupWindow.Show(popupRect, new TransformSavePopup(targetTransform.gameObject));
                GUIUtility.ExitGUI();
            }
            GUILayout.Space(8);               // Global reset
            if (GUILayout.Button(string.Empty, Ressources.bToolsSkin.customStyles[0], GUILayout.Width(16), GUILayout.Height(16)))
            {
                localPosition.vector3Value    = Vector3.zero;
                localEulerHint.vector3Value   = Vector3.zero;
                localRotation.quaternionValue = Quaternion.identity;
                localScale.vector3Value       = Vector3.one;
            }
            GUILayout.Space(8);               // Transform tools
            if (GUILayout.Button(string.Empty, Ressources.bToolsSkin.customStyles[3], GUILayout.Width(16), GUILayout.Height(16)))
            {
                TransformToolsWindow.OpenWindow();
                GUIUtility.ExitGUI();
            }

            serializedObject.ApplyModifiedProperties();

            toolbarIndex = GUILayout.Toolbar(toolbarIndex, displayToolbar, GUILayout.Height(14));

            EditorGUILayout.EndHorizontal();
            #endregion

            #region Default Controls
            if (toolbarIndex == 0)
            {
                EditorGUIUtility.labelWidth = 13;
                DrawLocalPositionGUI();
                DrawLocalRotationGUI();
                DrawLocalScaleGUI();
                EditorGUIUtility.labelWidth = 0;
            }
            else
            {
                EditorGUI.BeginDisabledGroup(true);
                EditorGUIUtility.labelWidth = 52;
                EditorGUIUtility.wideMode   = true;
                DrawWorldPositionGUI();
                DrawWorldRotationGUI();
                DrawWorldScaleGUI();
                EditorGUIUtility.labelWidth = 0;
                EditorGUI.EndDisabledGroup();
            }
            #endregion

            // Final Checks.
            if (IsPositionTooBig())
            {
                EditorGUILayout.HelpBox("Due to floating-point precision limitations, it is recommended to bring the world coordinates of the GameObject within a smaller range.", MessageType.Warning);
            }

            serializedObject.ApplyModifiedProperties();
            EditorGUI.EndDisabledGroup();
        }
コード例 #2
0
 public static void SetAsAlignDestination()
 {
     TransformToolsWindow.SetTargetTransform(Selection.activeTransform);
     EditorWindow.GetWindow <TransformToolsWindow>();
 }