User Manual · v1.1
Pivot++
Custom pivots for the Unity Editor. This guide covers setup and every feature, so you can start working with custom pivots in a few minutes.
1 · Introduction
Thanks for picking up Pivot++. This guide covers setup and every feature, so you can start working with custom pivots in a few minutes.
Pivot++ is an editor-only plugin that lets you reposition the transform handles of any object right in the Scene view. Instead of being locked to the pivot baked into a mesh, you can move, rotate and scale objects around any point you choose:
- the corner of a door,
- the base of a lamp post,
- the hinge of a lid.
All without re-exporting models or adding empty parent objects — and on the occasions where you do want a real parent, Pivot++ can create one for you at the exact pivot position with a single click.
Pivot++ lives in a compact panel that can sit inside the Scene view as an overlay, or be docked anywhere in your layout as its own window. It never modifies your meshes, adds no components to your GameObjects at runtime, and is stripped entirely from builds. It is a pure editor workflow tool.
1.1 · What's new in 1.1
If you are coming from version 1.0, these are the changes worth knowing about:
- Create Parent at Pivot. Turn any offset pivot into a real empty parent, so the pivot also exists at runtime. See section 5.
- Dockable window. Pivot++ can now be turned into an ordinary editor window and docked anywhere. Switch between the overlay and the window at any time with the button next to the On / Off toggle. See section 2.2.
- Offsetted Transform. A new section showing the position, rotation and scale of the current shared pivot, editable by dragging the X / Y / Z labels or by typing exact values. See section 6.
- Quick Align buttons. Four buttons at the end of every bounded axis row send the pivot to the object's own origin, or to the minimum, centre or maximum of its bounds. See section 4.2.
- Support for more components. UI elements, colliders and layout components join MeshRenderer, SkinnedMeshRenderer and SpriteRenderer. See section 8.
- Scale Lock fix. Version 1.0 ignored the constrain-proportions lock in Unity's Transform component, so axes could still be scaled independently while the lock was on. Pivot++ now honours it.
- Yellow dot. The real pivot of every selected object is now permanently marked in the Scene view, so you can always see where Unity's own pivot sits.
1.2 · Key features
- Shared Pivot. Instantly offset the handle position for the current selection, bounded or unbounded.
- Bounded offsets. Position the pivot relative to the object's bounds, so the same settings adapt to meshes of any size.
- Unbounded offsets. Position the pivot at an exact, fixed distance in the object's local space.
- Quick Align. One-click alignment to the object's own origin or to any face of its bounds.
- Offsetted Transform. Read and type the exact world position, rotation and scale of the pivot you are working around.
- Create Parent at Pivot. Bake the offset into a real empty parent whenever you need the pivot at runtime.
- Many pivots per object. Save as many as you need, all within reach while you work.
- Edit Pivots mode. Move, rotate and delete saved pivots right in the Scene view.
- Overlay or window. Keep Pivot++ in the Scene view, or dock it into your layout.
- Non-destructive. Your meshes, prefabs and hierarchy are never altered unless you explicitly ask for a new parent.
1.3 · Requirements
- Unity 2022.3 or newer.
2 · Getting Started
2.1 · Activating Pivot++
Out of the box, Pivot++ is a Scene view overlay. To enable it:
- Focus the Scene view by clicking anywhere inside it.
- Press ` (the backtick key, above Tab) to open the Overlays menu.
- Enable Pivot++ under the Custom foldout.
- The Pivot++ overlay appears in the Scene view. Drag it by its header and dock or place it wherever is comfortable.
You can also open the Overlays menu from the ⋮ menu in the top-right corner of the Scene view, or via Overlays ▸ Overlay Menu. Like any Unity overlay, Pivot++ can be docked to an edge, collapsed, or left floating.
2.2 · Overlay or window
New in 1.1: Pivot++ does not have to live in the Scene view. The small button to the right of the Enabled toggle switches the panel between two homes:
- Overlay. The panel floats inside the Scene view, exactly as it did in version 1.0.
- Window. The panel becomes an ordinary editor window titled Pivot++, which you can dock next to the Inspector, tab behind another window, or drag onto a second monitor.
The button always shows the destination, not the current state: while the panel is an overlay it shows the docked-window glyph, and while it is a window it shows the floating-overlay glyph. One click moves the panel, and everything inside it keeps working exactly the same way in both homes.
You can also open the window directly from the menu bar: Tools ▸ Pivot++ ▸ Panel. Closing the window puts nothing back in the Scene view by itself — use the same button, or the Overlays menu, to bring the overlay back.
The window is worth docking when you work with the Offsetted Transform fields a lot, or on a small Scene view where the overlay covers too much of your work. The overlay is the faster option for quick, occasional pivot nudges.
2.3 · First steps
- Select any GameObject with a renderer, a UI element or a collider in the Scene view or Hierarchy.
- Make sure the toggle at the top of the panel reads Enabled.
- Drag the X, Y or Z sliders in the Shared Pivot section. The move / rotate / scale handles jump to the new position immediately.
- Rotate or scale the object: it now pivots around the new handle position.
- Watch the Offsetted Transform section underneath — it reports exactly where that pivot is, and you can type into it.
Disabling the toggle restores Unity's default handle behaviour at any time. Your settings are kept, so re-enabling brings you right back to where you left off.
3 · Interface Overview
The panel is organized into four areas: the master toggle, the Shared Pivot section, the Offsetted Transform section, and the Object Pivots section. Every section header is clickable and collapses its section. The numbered reference below covers every control.
| # | Control | Description |
|---|---|---|
| 1 | Enabled / Disabled | Master toggle. Green (Enabled) means Pivot++ is overriding the transform handles; click it to fall back to Unity's default pivot without losing your settings. |
| 2 | Overlay / Window | Switches Pivot++ between a Scene view overlay and its own dockable window. The glyph shows where a click would send the panel. See section 2.2. |
| 3 | Shared Pivot section | A quick, selection-wide pivot offset. Applies to whatever is currently selected and is shared across all objects. See section 4. |
| 4 | Bounded / Unbounded | Chooses how the offset is expressed: relative to the object's bounds (−1 to 1), or as an exact distance in its local space. |
| 5 | Canvas Bounds | Affects UI and layout objects only. Chooses whether their bounds come from the RectTransform's own rect, or from the layout element's preferred or minimum size. See section 4.4. |
| 6 | Bounded X / Y / Z | Position of the shared pivot within the bounds on each axis. −1 is one face of the bounds, 0 is the centre, 1 is the opposite face. Drag the slider or type an exact value. |
| 7 | Quick Align buttons | Four one-click destinations per axis: the object's own origin (the yellow button), then the minimum, centre and maximum of the bounds. See section 4.2. |
| 8 | Create Parent at Pivot | Creates an empty GameObject at the shared pivot and moves the selection into it, so the offset pivot exists at runtime too. See section 5. |
| 9 | Offsetted Transform section | The live position, rotation and scale of the current shared pivot — and an editable one. See section 6. |
| 10 | Position / Rotation / Scale | Type exact values, or drag the X / Y / Z labels to fine-tune them. Every edit is applied around the offset pivot, not the object's own. |
| 11 | Object Pivots section | Per-object saved pivots. Create any number of custom pivots stored on the selected object. See section 7. |
| 12 | Add New Pivot | Saves the current Shared Pivot position as a new permanent pivot on the selected object. |
| 13 | Unbounded X / Y / Z | Exact local-space offset of the shared pivot from the object's centre, in scene units. Unbounded mode only. |
| 14 | Use Object Scale | Unbounded mode only. When ticked, the offset is multiplied by the object's scale; when unticked, it is an absolute world-distance offset. |
Once the selected object carries at least one saved pivot, the Object Pivots section grows two more controls: a counter badge (e.g. 2 PIVOTS) and the Default / Edit Pivots toggle. Both are covered in section 7.
5 · Create Parent at Pivot
An offset pivot is an editor convenience: it changes where the handles are drawn, not the object itself. That is exactly what you want while blocking out a level — but as soon as you need to animate, tween or script a rotation around that point, the offset has to become something the runtime can see.
Create Parent at Pivot is that bridge. It creates an empty GameObject at the shared pivot's exact position and rotation, and moves your selection inside it. Rotating or scaling the new parent now does exactly what the Pivot++ handle did.
- Position the shared pivot where you want it, using the sliders, fields or Quick Align buttons.
- Click Create Parent at Pivot at the bottom of the Shared Pivot section.
- A new GameObject named New Parent appears at that exact spot, with your selection parented under it.
The operation is a single undo step, so Ctrl + Z puts the hierarchy back the way it was.
5.1 · Several objects at once
The action works on multi-selections too. Objects that already share a parent are gathered into one new parent; objects living under different parents each get their own, so nothing is yanked out of its branch of the hierarchy.
5.2 · Prefabs
Re-parenting inside a prefab instance is not something a tool should do behind your back. When the selection belongs to one, Pivot++ stops and asks what you would prefer — unpacking the instance, opening the prefab and doing it there, or placing the new parent above the prefab root. Cancelling leaves everything untouched.
The button greys out instead of disappearing when the action cannot run — for example with nothing selected, with objects spread over several scenes, or with a non-editable object. Hover it to read exactly why.
The same action is available for every saved pivot on an object, from the blue + button in Edit Pivots mode. See section 7.3.
6 · The Offsetted Transform
New in 1.1, the Offsetted Transform section is a Transform inspector for the pivot you are actually working around, rather than for the object's own origin. It always shows three rows:
| Row | What it shows, and what typing into it does |
|---|---|
| Position | The world position of the shared pivot. Typing here moves the selection so the pivot lands exactly on those coordinates. |
| Rotation | The world rotation of the active object, in degrees. Typing here rotates the selection around the offset pivot. |
| Scale | The local scale of the active object. Typing here scales the selection around the offset pivot. |
Values are pushed live as you drag handles in the Scene view, so the section doubles as a readout: park the pivot on a corner and you can simply read off where that corner is in world space.
6.1 · Dragging the labels
Every row carries coloured X, Y and Z labels. Click and drag one left or right to scrub that value — a much faster way to fine-tune a placement than typing, and it works on all three rows. Typed values are committed when you press Enter or leave the field, so a half-finished number never moves anything.
6.2 · Scale lock
Version 1.0 ignored the constrain-proportions lock — the chain-link button next to Scale in Unity's Transform component — which let you scale axes independently even while the lock was on. This is fixed: with the lock enabled, the Scale tool and the Scale row both keep all three axes in proportion, exactly as Unity's own handles do.
Like Unity's own combined Transform tool, the scale lock is deliberately ignored while that tool is active. Switch to the Scale tool to work with the lock.
7 · Object Pivots
While the Shared Pivot is a single, selection-wide offset, Object Pivots are permanently available on a specific object. An object can hold any number of such pivots:
- A door can have a pivot on each hinge.
- An L-shaped prop can have a pivot on every corner.
…and you can switch between them as you work.
7.1 · Adding a new pivot
- Using the Shared Pivot controls, position the pivot exactly where you want the new saved pivot to be.
- Click the + Add New Pivot button at the bottom of the panel.
- A new pivot is created exactly where the shared pivot is, and the button briefly confirms the coordinates it used.
The new pivot sits exactly where the shared pivot is. That gives you precise placement, but it can throw you off at first: the new handle and the shared pivot handle overlap perfectly, so it looks like nothing happened.
The counter badge in the Object Pivots section tells you how many extra pivots the object has alongside the Shared Pivot. Repeat the steps to add as many pivots as the object needs.
7.2 · Edit Pivots mode
Click the Edit Pivots button to enter editing mode. Every saved pivot on the object is drawn in the Scene view with its own gizmo, and the rest of the panel collapses out of the way so nothing competes with what you are editing:
- Move. Drag a pivot's position arrows to relocate it.
- Rotate. Drag the rotation rings to orient the pivot.
- Delete. Click the red ✕ button next to a pivot to remove it from the object.
- Create Parent. Click the blue + button to turn that pivot into a real empty parent — see section 7.3.
When you are done, click Default to leave editing mode and return to normal handle control. Deleting the last pivot drops the object back to Default mode on its own.
1. Use the Global / Local toggle at the top-left of the Scene view to properly place & orient these pivots.
2. Edit mode supports Undo with Ctrl + Z.
3. Saved pivots stick through sessions. Set up once and reuse them forever.
7.3 · A parent from a saved pivot
The blue + button beside every pivot in Edit Pivots mode is the per-pivot version of Create Parent at Pivot. It creates an empty GameObject at that saved pivot's position and rotation, and moves the object inside it.
This is the quickest route from “I marked the hinge months ago” to “the door now rotates around the hinge at runtime”: set your pivots up once, and bake whichever of them you need into real transforms whenever a scene, animation or script calls for it.
The button follows the same rules as the one in the Shared Pivot section: it greys out when the action cannot run, with the reason in its tooltip, and prefab instances are asked about rather than silently modified.
8 · Supported Components
Pivot++ needs to know how big an object is before it can place a pivot on its bounds. Version 1.1 widens that considerably — UI elements, colliders and layout components now work alongside the renderers supported in 1.0:
| Component | Bounds are taken from | Since |
|---|---|---|
| MeshFilter / MeshRenderer | The shared mesh's bounds. | 1.0 |
| SkinnedMeshRenderer | The shared mesh's bounds. | 1.0 |
| SpriteRenderer | The sprite's bounds. | 1.0 |
| TextMeshPro text | The text object's laid-out rect. | 1.1 |
| Legacy UI Text | The text object's laid-out rect. | 1.1 |
| Layout components | The layout element's rect, preferred size or minimum size, depending on the Canvas Bounds setting. | 1.1 |
| RectTransform | The rect itself — the fallback for any other UI element. | 1.1 |
| Collider (3D) | Box, Sphere, Capsule and Mesh colliders. | 1.1 |
| Collider2D | Box, Circle and Capsule 2D colliders. | 1.1 |
Bounds are gathered from the selected object and all of its children, so a prop assembled from a dozen meshes is measured as one shape. Where an object carries several of these components, the first match in the order above wins.
9 · Tips & Troubleshooting
9.1 · Workflow tips
- Dock the overlay to an edge of the Scene view to keep it out of the way; collapse any section from its header when you need the space.
- Switch to Window mode when you are working with exact numbers — a docked panel next to the Inspector gives the Offsetted Transform fields room to breathe.
- Use Bounded mode for shape-relative work (bases, corners, edges) and Unbounded mode for exact distances or pivots outside the mesh.
- Reach for the Quick Align buttons before touching a slider: “bottom of the object” is one click, not a drag.
- Keep the master toggle on Enabled and set the sliders to 0 when you want the original pivot. Or click the toggle to turn Pivot++ off entirely.
- When an offset turns out to be permanent, use Create Parent at Pivot rather than rebuilding the hierarchy by hand.
9.2 · Common questions
The panel says “No object selected.”
Pivot++ needs an active selection to work with. Select a GameObject in the Scene view or Hierarchy and the controls will appear.
The panel says “Selected object does not have any component to draw bounds from.”
Pivot++ works on objects that have a measurable shape — meshes, sprites, text, UI elements and colliders (see section 8). If neither the GameObject nor any of its children carries one of those, there is no “top-right” or “bottom-left” corner to go to, and Pivot++ shows you Unity's default handles instead.
The panel says “The current tool is not supported.”
Pivot++ overrides the Move, Rotate, Scale and Transform tools. Any other tool — Rect, a custom editor tool, or the View tool — is left alone. Pick one of the four and the controls come back.
I can't find Pivot++ in the Overlays menu.
Make sure the Scene view is focused when you press `, and look under the Custom foldout of the Overlays menu. If it is still missing, confirm the plugin imported without console errors and that you are on Unity 2022.3 or newer. You can also open the panel as a window from Tools ▸ Pivot++ ▸ Panel.
Pivot++ is not visible, even after I enabled it in the Overlays menu.
Two things to check. First, Unity lets you disable all overlays for a Scene view: open the Overlays menu (focus the Scene view and press `) and make sure the Enable Overlays toggle at the top is ticked. Second, the panel may simply be in Window mode — it can only live in one home at a time. Look for a Pivot++ tab in your layout, or open it from Tools ▸ Pivot++ ▸ Panel and use the button next to the toggle to send it back to the Scene view.
The handles don't move when I change the sliders.
The sliders only affect the Shared Pivot, not the object's saved pivots. If the handle doesn't react, you may be looking at one of the saved pivots while the shared pivot is elsewhere.
There is a yellow dot on my object.
That is the object's real pivot — where Unity would put the handles without Pivot++. It is drawn for every selected object so the difference between the two is always visible; it is purely a marker and never takes a click. The yellow Quick Align button on each axis sends the handle back to it.
My object scales on all three axes at once.
The constrain-proportions lock in the Transform component is on. Version 1.1 honours it, where 1.0 did not. Click the chain-link button next to Scale in the Inspector to unlock it.
Do saved pivots exist at runtime?
Not by themselves — they are editor data, and nothing about them ships in a build. When you need a pivot in play mode, use Create Parent at Pivot (section 5) or the blue + button in Edit Pivots mode to turn it into a real GameObject.
Does Pivot++ change my mesh or add components?
No. Pivot++ only overrides where the editor draws and applies the transform handles. Your mesh assets, import settings and runtime data are untouched. The one action that does change your scene, Create Parent at Pivot, only ever runs when you click it, and is a single undo away.
10 · Support
If you run into a problem, have a feature request, or just want to share what you have built with it, we would love to hear from you.
Email: itsdevlogger@gmail.com
When reporting an issue, please include your Unity version and the plugin version (1.1). If you can, add a screenshot or short clip of the problem. It helps us get you a fix much faster.
Happy pivoting!