public void RotateUsingKeyboardSettings(TransformAxis rotationAxis) { if (IsAnyMouseSessionActive) { return; } ObjectKeyboardRotationSettings keyboardRotationSettings = ObjectPlacementGuideSettings.Get().KeyboardRotationSettings; UndoEx.RecordForToolAction(_transform); AxisKeyboardRotationSettings axisKeyboardRotationSettings = keyboardRotationSettings.XAxisRotationSettings; if (rotationAxis == TransformAxis.Y) { axisKeyboardRotationSettings = keyboardRotationSettings.YAxisRotationSettings; } else if (rotationAxis == TransformAxis.Z) { axisKeyboardRotationSettings = keyboardRotationSettings.XAxisRotationSettings; } gameObject.RotateHierarchyBoxAroundPoint(axisKeyboardRotationSettings.RotationAmountInDegrees, TransformAxes.GetVector(rotationAxis, TransformSpace.Global, _transform), gameObject.GetHierarchyWorldOrientedBox().Center); UndoEx.RecordForToolAction(_sourcePrefab.ActivationSettings); _sourcePrefab.ActivationSettings.WorldRotation = _transform.rotation; }
public ObjectKeyboardRotationSettingsView(ObjectKeyboardRotationSettings settings) { _settings = settings; ToggleVisibilityBeforeRender = true; VisibilityToggleLabel = "Keyboard Rotation Settings"; IndentContent = true; }
public void RotateUsingKeyboardSettings(Vector3 customRotationAxis) { if (IsAnyMouseSessionActive) { return; } UndoEx.RecordForToolAction(_transform); ObjectKeyboardRotationSettings keyboardRotationSettings = ObjectPlacementGuideSettings.Get().KeyboardRotationSettings; gameObject.RotateHierarchyBoxAroundPoint(keyboardRotationSettings.CustomAxisRotationSettings.RotationAmountInDegrees, customRotationAxis, gameObject.GetHierarchyWorldOrientedBox().Center); UndoEx.RecordForToolAction(_sourcePrefab.ActivationSettings); _sourcePrefab.ActivationSettings.WorldRotation = _transform.rotation; }