lineTex | The AA texture used for rendering. To get an anti-aliased effect use a texture that is 1x2 pixels with one transparent white pixel and one opaque white pixel. |
width | The width of the line. |
points | List of points to build the line from. |
Draw anti-aliased line specified with point array and width.
Note: Use HandleUtility.GetHandleSize if you want the handle to always remain the same size on the screen.
Anti-aliased line in the Scene View.
The following example uses DrawAAPolyLine to draw a line between a number of objects in the Scene view.
To use this example, save the following script in the Assets/Editor folder:
#pragma strict @CustomEditor(DrawConnectedLine) public class DrawConnectedLineEditor extends Editor { // then it draws a line from the Last checked object to 0,0,0 function OnSceneGUI() { var t: DrawConnectedLine = target as DrawConnectedLine; if (t == null || t.GameObjects == null)return ; var positions: Vector3[] = new Vector3[t.GameObjects.Length]; for (var i: int = 0; i < t.GameObjects.Length; i++) { if (t.GameObjects[i] != null) positions[i] = t.GameObjects[i].transform.position; else positions[i] = Vector3.zero; } Handles.DrawAAPolyLine(positions); } }
using UnityEngine; using UnityEditor;
[CustomEditor( typeof( DrawConnectedLine ) )] public class DrawConnectedLineEditor : Editor { // Draw lines to the connected game objects that a script has. // if the target object doesnt have any game objects attached // then it draws a line from the Last checked object to 0,0,0
void OnSceneGUI( ) { DrawConnectedLine t = target as DrawConnectedLine;
if( t == null || t.GameObjects == null ) return;
Vector3[] positions = new Vector3[t.GameObjects.Length];
for( int i = 0; i < t.GameObjects.Length; i++ ) { if( t.GameObjects[i] != null ) positions[i] = t.GameObjects[i].transform.position; else positions[i] = Vector3.zero; }
Handles.DrawAAPolyLine( positions ); } }
...and attach the following script to a GameObject in the Scene. Drag and drop GameObjects onto the GameObjects array inspector, corresponding to the GameObjects you would like to see the line drawn between:
#pragma strict @ExecuteInEditMode public class DrawConnectedLine extends MonoBehaviour { public var GameObjects: GameObject[]; }
using UnityEngine;
[ExecuteInEditMode] public class DrawConnectedLine : MonoBehaviour { public GameObject[] GameObjects; }