diff --git a/CHANGELOG.md b/CHANGELOG.md
index 22b6dba09..45708c2ef 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
+### Changes
+- PositionToolContext made public
+- TextureToolContext made public
+- MeshSelection.totalVertexCountOptimized made public
+- CutTool made public
+
### Fixed
- [PBLD-240] Fixed a bug where buttons for "Create Cube" and "Create PolyShape" appeared incorrectly on Light theme.
diff --git a/Editor/EditorCore/CutTool.cs b/Editor/EditorCore/CutTool.cs
index 7f44d05fe..01b358830 100644
--- a/Editor/EditorCore/CutTool.cs
+++ b/Editor/EditorCore/CutTool.cs
@@ -19,7 +19,7 @@
namespace UnityEditor.ProBuilder
{
[EditorTool("Cut Tool", typeof(ProBuilderMesh), typeof(PositionToolContext))]
- class CutTool : EditorTool
+ public class CutTool : EditorTool
{
ProBuilderMesh m_Mesh;
diff --git a/Editor/EditorCore/MeshSelection.cs b/Editor/EditorCore/MeshSelection.cs
index 39c1c977b..251e4089e 100644
--- a/Editor/EditorCore/MeshSelection.cs
+++ b/Editor/EditorCore/MeshSelection.cs
@@ -419,8 +419,11 @@ internal static bool Contains(ProBuilderMesh mesh)
/// Gets the number of all selected vertices across the selected ProBuilder meshes, excluding coincident duplicates.
///
public static int totalCommonVertexCount { get { CacheElementCounts(); return s_TotalCommonVertexCount; } }
-
- internal static int totalVertexCountOptimized { get { CacheElementCounts(); return s_TotalVertexCountCompiled; } }
+
+ ///
+ /// Gets the number of all selected ProBuilder compiled mesh vertices.
+ ///
+ public static int totalVertexCountOptimized { get { CacheElementCounts(); return s_TotalVertexCountCompiled; } }
///
/// Gets the sum of all selected ProBuilderMesh faces.
diff --git a/Editor/EditorCore/ProBuilderToolsContexts.cs b/Editor/EditorCore/ProBuilderToolsContexts.cs
index 99cfcc3c0..92a4a44e7 100644
--- a/Editor/EditorCore/ProBuilderToolsContexts.cs
+++ b/Editor/EditorCore/ProBuilderToolsContexts.cs
@@ -18,7 +18,7 @@ static class ProBuilderToolManager
[Icon("Packages/com.unity.probuilder/Content/Icons/EditableMesh/EditMeshContext.png")]
[EditorToolContext("ProBuilder", typeof(ProBuilderMesh))]
- class PositionToolContext : EditorToolContext
+ public class PositionToolContext : EditorToolContext
{
internal class ProBuilderShortcutContext : IShortcutContext
{
@@ -407,7 +407,7 @@ static void SetColliderAction(MenuCommand command)
}
}
- class TextureToolContext : EditorToolContext
+ public class TextureToolContext : EditorToolContext
{
ProBuilderEditor m_Editor;
diff --git a/Editor/EditorCore/TextureMoveTool.cs b/Editor/EditorCore/TextureMoveTool.cs
index 8228767e3..ece0c0051 100644
--- a/Editor/EditorCore/TextureMoveTool.cs
+++ b/Editor/EditorCore/TextureMoveTool.cs
@@ -39,7 +39,6 @@ protected override void DoToolGUI()
{
if (!isEditing)
m_Position = Vector3.zero;
-
EditorHandleUtility.PushMatrix();
Handles.matrix = Matrix4x4.TRS(m_HandlePosition, m_HandleRotation, Vector3.one);
@@ -48,22 +47,25 @@ protected override void DoToolGUI()
Handles.color = Color.blue;
+ // Disable Snap for the individual handles. Snap is applied if movement is detected.
+ const float SnapFactor = 0.0f;
+
m_Position = Handles.Slider2D(m_Position,
Vector3.forward,
Vector3.right,
Vector3.up,
HandleUtility.GetHandleSize(m_Position) * .2f,
Handles.RectangleHandleCap,
- 0f,
+ SnapFactor,
false);
Handles.color = Color.green;
- m_Position = Handles.Slider(m_Position, Vector3.up);
+ m_Position = Handles.Slider(m_Position, Vector3.up, HandleUtility.GetHandleSize(m_Position), Handles.ArrowHandleCap, SnapFactor);
Handles.color = Color.red;
- m_Position = Handles.Slider(m_Position, Vector3.right);
+ m_Position = Handles.Slider(m_Position, Vector3.right, HandleUtility.GetHandleSize(m_Position), Handles.ArrowHandleCap, SnapFactor);
Handles.color = Color.white;