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(); }
public static void SetAsAlignDestination() { TransformToolsWindow.SetTargetTransform(Selection.activeTransform); EditorWindow.GetWindow <TransformToolsWindow>(); }