UnityEditor.VertexSnapping.FindNearestPivot C# (CSharp) Method

FindNearestPivot() private static method

private static FindNearestPivot ( Transform transforms, Vector2 screenPosition ) : Vector3
transforms UnityEngine.Transform
screenPosition Vector2
return Vector3
        private static Vector3 FindNearestPivot(Transform[] transforms, Vector2 screenPosition)
        {
            bool flag = false;
            Vector3 zero = Vector3.zero;
            foreach (Transform transform in transforms)
            {
                Vector3 vector2 = ScreenToWorld(screenPosition, transform);
                if (flag)
                {
                    Vector3 vector3 = zero - vector2;
                    Vector3 vector4 = transform.position - vector2;
                    if (vector3.magnitude <= vector4.magnitude)
                    {
                        continue;
                    }
                }
                zero = transform.position;
                flag = true;
            }
            return zero;
        }

Usage Example

示例#1
0
        private static void UpdateVertexSnappingOffset()
        {
            Event current = Event.current;

            Tools.vertexDragging = true;
            Transform[] transforms = Selection.GetTransforms((SelectionMode)14);
            HandleUtility.ignoreRaySnapObjects = null;
            Vector3 vector = VertexSnapping.FindNearestPivot(transforms, current.mousePosition);
            Vector3 vector2;
            bool    flag       = HandleUtility.FindNearestVertex(current.mousePosition, transforms, out vector2);
            float   magnitude  = (HandleUtility.WorldToGUIPoint(vector2) - current.mousePosition).magnitude;
            float   magnitude2 = (HandleUtility.WorldToGUIPoint(vector) - current.mousePosition).magnitude;
            Vector3 a;

            if (flag && magnitude < magnitude2)
            {
                a = vector2;
            }
            else
            {
                a = vector;
            }
            Tools.handleOffset = Vector3.zero;
            Tools.handleOffset = a - Tools.handlePosition;
        }
All Usage Examples Of UnityEditor.VertexSnapping::FindNearestPivot