# DrawPolyLine(params Vector3[])

> Draw a line going through the list of points.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.7/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

## DrawPolyLine(Vector3\[])

```csharp
public static void DrawPolyLine(params Vector3[] points)
```

### Parameters

**** (\[Vector3\[]]\(/engine/6000.7/script-reference/unityengine/vector3)):&#x20;

### Remarks

**Note:** Use [HandleUtility.GetHandleSize](/engine/6000.7/script-reference/unityeditor/handleutility/gethandlesize.md) where you might want to have constant screen-sized handles.

![DrawPolyLine (DrawPolyLine(params Vector3\[\]))](/api/media?file=/engine/6000.7/media/images/DrawPolyLine.png)

*PolyLine that connects all the objects in the Scene View.*

```csharp
// Draw lines between selected GameObjects.

using UnityEditor;
using UnityEngine;
using System.Collections;

[CustomEditor(typeof(DrawPolyLineExample))]
public class PolyLineDraw : Editor
{
    private Vector3[] positions;

    void OnSceneGUI()
    {
        DrawPolyLineExample connectedObjects = target as DrawPolyLineExample;
        if (connectedObjects.objs == null)
        {
            return;
        }

        if (connectedObjects.objs.Length > 0)
        {
            positions = new Vector3[connectedObjects.objs.Length];
        }

        for (var i = 0; i < connectedObjects.objs.Length; i++)
        {
            if (connectedObjects.objs[i])
            {
                positions[i] = connectedObjects.objs[i].transform.position;
            }
            else
            {
                positions[i] = Vector3.zero;
            }
        }

        Handles.DrawPolyLine(positions);
    }
}
```

And the script attached to this handle:

```csharp
using UnityEngine;

public class DrawPolyLineExample : MonoBehaviour
{
    public GameObject[] objs;
}
```
