UnityEditor.VertexSnapping.UpdateVertexSnappingOffset C# (CSharp) Method

UpdateVertexSnappingOffset() private static method

private static UpdateVertexSnappingOffset ( ) : void
return void
        private static void UpdateVertexSnappingOffset()
        {
            Vector3 vector;
            Vector3 vector3;
            Event current = Event.current;
            Tools.vertexDragging = true;
            Transform[] transforms = Selection.GetTransforms(SelectionMode.Editable | SelectionMode.ExcludePrefab | SelectionMode.Deep);
            HandleUtility.ignoreRaySnapObjects = null;
            Vector3 world = FindNearestPivot(transforms, current.mousePosition);
            bool flag = HandleUtility.FindNearestVertex(current.mousePosition, transforms, out vector);
            Vector2 vector4 = HandleUtility.WorldToGUIPoint(vector) - current.mousePosition;
            float magnitude = vector4.magnitude;
            Vector2 vector5 = HandleUtility.WorldToGUIPoint(world) - current.mousePosition;
            float num2 = vector5.magnitude;
            if (flag && (magnitude < num2))
            {
                vector3 = vector;
            }
            else
            {
                vector3 = world;
            }
            Tools.handleOffset = Vector3.zero;
            Tools.handleOffset = vector3 - Tools.handlePosition;
        }
    }

Usage Example

示例#1
0
 private static void EnableVertexSnapping(int id)
 {
     Tools.vertexDragging = true;
     if (GUIUtility.hotControl == id)
     {
         Tools.handleOffset = VertexSnapping.s_VertexSnappingOffset;
     }
     else
     {
         VertexSnapping.UpdateVertexSnappingOffset();
         VertexSnapping.s_VertexSnappingOffset = Tools.handleOffset;
     }
 }