- `PolygonMesh.SetFaceTextureCoords()` now properly sets `IsDirty`
- Added `PolygonMesh.GetFaceTextureCoords()`
- Added `FastTextureWindow` (which extends RectEditor.Window) and `FastTextureSettings` classes
- Added `MeshRectangle` which is a RectEditor `Rectangle` that contains faces from a mesh unwrapped within the rectangle, reflecting any transform changes made back to the associated mesh faces
- Added `EdgeAwareFaceUnwrapper` class which handles all UV unwrapping
- Added a "Fast Texturing Tool" button to the Mapping Tool's Texture Mode which opens a FastTextureWindow with the selected faces. This can also be opened with the shortcut CTRL+G (from the Texture Mode OR the Face Mode)
- If a Fast Texturing Tool window is open and the faces are deselected (or the user exits the Mapping Tool) the window will automatically close itself
- Implemented U/V Alignment Settings (+ Horizontal/Vertical Flip)
- Implemented Inset X/Y Settings
- Implemented Square Unwrap, Planar Unwrap, and Use Existing mapping modes
- If the selected material has a rect asset, you can double-click on a rect to automatically fit your UV rectangle to the one you double-clicked. (You can also toggle the visibility of the material's rects)
- Implemented the "Pick Edge" button which allows you to select an edge from the unwrap and automatically orient the UVs so that the selected edge is aligned with the grid.
- Added `Rectangle,CanDelete`, used by MeshRectangles so they cant be deleted
- Fixed `RectView.DragResizeRect` behaviour so that resizing a rect will snap the dragged edges to the grid instead of just increasing/decreasing by the grid size
- Added Panning/Zooming to the Rect Editor
- Disabling the Grid in the RectEditor now disables grid snapping
- Can now resize rects in on themselves to resize in the other direction without making an invalid rect
- Added Tile View to RectView
* Fixes GameObject references in GameObjectSystem NetLists and NetDictionaries being null on clients.
* dotnet format
---------
Co-authored-by: Andy <10728824+andy013@users.noreply.github.com>
- Can now use modifier keys alongside the Mouse Wheel (lets you do CTRL+MWHEELUP, CTRL+MWHEELDOWN, ect)
- Keybinds are now captured on release instead of on press (Previously pressing CTRL+D would just capture CTRL so you'd have to hold CTRL before capturing and then press D)
- Added Sandbox.Test.Unit project (contains independent tests that can run in parallel)
- Modify some slow/stress tests (e.g. instead of doing a million iterations settle for 10k).
Tests run almost twice as fast now.
- Changing tools now focuses the newly created tool widget (or focuses the viewport if no tool widget exists)
- All mesh-related shortcuts now checks for SceneDock focus (or any of its descendants) instead of just the viewport. Allows you to execute shortcuts while focus is on the sidebar
- Position/Scale/Rotate mesh tool shortcuts now share the same shortcut as the object mode's Position/Scale/Rotate so they don't override each other (this was previously preventing the shortcuts from firing at all in the mesh tool unless you had a specific widget focus)