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 }); } }
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 }); }