예제 #1
0
 private static void DrawNavigationArrow(Vector2 direction, Selectable fromObj, Selectable toObj)
 {
     if (!(fromObj == null) && !(toObj == null))
     {
         Transform transform  = fromObj.transform;
         Transform transform2 = toObj.transform;
         Vector2   vector     = new Vector2(direction.y, -direction.x);
         Vector3   vector2    = transform.TransformPoint(SelectableEditor.GetPointOnRectEdge(transform as RectTransform, direction));
         Vector3   vector3    = transform2.TransformPoint(SelectableEditor.GetPointOnRectEdge(transform2 as RectTransform, -direction));
         float     d          = HandleUtility.GetHandleSize(vector2) * 0.05f;
         float     d2         = HandleUtility.GetHandleSize(vector3) * 0.05f;
         vector2 += transform.TransformDirection(vector) * d;
         vector3 += transform2.TransformDirection(vector) * d2;
         float   d3 = Vector3.Distance(vector2, vector3);
         Vector3 b  = transform.rotation * direction * d3 * 0.3f;
         Vector3 b2 = transform2.rotation * -direction * d3 * 0.3f;
         Handles.DrawBezier(vector2, vector3, vector2 + b, vector3 + b2, Handles.color, null, 2.5f);
         Handles.DrawAAPolyLine(2.5f, new Vector3[]
         {
             vector3,
             vector3 + transform2.rotation * (-direction - vector) * d2 * 1.2f
         });
         Handles.DrawAAPolyLine(2.5f, new Vector3[]
         {
             vector3,
             vector3 + transform2.rotation * (-direction + vector) * d2 * 1.2f
         });
     }
 }
예제 #2
0
        private static void DrawNavigationArrow(Vector2 direction, Selectable fromObj, Selectable toObj)
        {
            if ((UnityEngine.Object)fromObj == (UnityEngine.Object)null || (UnityEngine.Object)toObj == (UnityEngine.Object)null)
            {
                return;
            }
            Transform transform1 = fromObj.transform;
            Transform transform2 = toObj.transform;
            Vector2   vector2    = new Vector2(direction.y, -direction.x);
            Vector3   position1  = transform1.TransformPoint(SelectableEditor.GetPointOnRectEdge(transform1 as RectTransform, direction));
            Vector3   position2  = transform2.TransformPoint(SelectableEditor.GetPointOnRectEdge(transform2 as RectTransform, -direction));
            float     num1       = HandleUtility.GetHandleSize(position1) * 0.05f;
            float     num2       = HandleUtility.GetHandleSize(position2) * 0.05f;
            Vector3   vector3_1  = position1 + transform1.TransformDirection((Vector3)vector2) * num1;
            Vector3   vector3_2  = position2 + transform2.TransformDirection((Vector3)vector2) * num2;
            float     num3       = Vector3.Distance(vector3_1, vector3_2);
            Vector3   vector3_3  = transform1.rotation * (Vector3)direction * num3 * 0.3f;
            Vector3   vector3_4  = transform2.rotation * (Vector3)(-direction) * num3 * 0.3f;

            Handles.DrawBezier(vector3_1, vector3_2, vector3_1 + vector3_3, vector3_2 + vector3_4, Handles.color, (Texture2D)null, 2.5f);
            Handles.DrawAAPolyLine(2.5f, new Vector3[2]
            {
                vector3_2,
                vector3_2 + transform2.rotation * (Vector3)(-direction - vector2) * num2 * 1.2f
            });
            Handles.DrawAAPolyLine(2.5f, new Vector3[2]
            {
                vector3_2,
                vector3_2 + transform2.rotation * (Vector3)(-direction + vector2) * num2 * 1.2f
            });
        }