Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Handles.DrawLine

Объявление

public static void DrawLine(Vector3 p1, Vector3 p2, float thickness = 0.0f);

Параметры

p1 Положение конечной точки первой линии в мировом пространстве.
p2 Положение конечной точки второй линии в мировом пространстве.
thickness Толщина линии в точках пользовательского интерфейса (нулевая толщина рисует линию в один пиксель).

Описание

Рисует линию от p1 до p2.

Свойства Handles.color и Handles.matrix раскрашивают и дополнительно преобразуют положение строки. Unity игнорирует DrawLine (то есть ничего не происходит), если текущий тип события GUI не Repaint.

Нарисуйте линию в представлении сцены.
// Рисуем линии к связанным игровым объектам, которые есть у скрипта. // Если к целевому объекту не прикреплены какие-либо игровые объекты // затем он рисует линию от объекта до (0, 0, 0). using UnityEditor; using UnityEngine; [CustomEditor(typeof(ConnectedObjectsExampleScript))] class ConnectLineHandleExampleScript : Editor { void OnSceneGUI() { ConnectedObjectsExampleScript connectedObjects = target as ConnectedObjectsExampleScript; if (connectedObjects.objs == null) return; Vector3 center = connectedObjects.transform.position; for (int i = 0; i < connectedObjects.objs.Length; i++) { GameObject connectedObject = connectedObjects.objs[i]; if (connectedObject) { Handles.DrawLine(center, connectedObject.transform.position); } else { Handles.DrawLine(center, Vector3.zero); } } } }

И скрипт, прикрепленный к этому дескриптору:

using UnityEngine; public class ConnectedObjectsExampleScript : MonoBehaviour { public GameObject[] objs = null; }

Необязательная установка толщины линии. Нулевая толщина рисует линию в один пиксель. Большие значения толщины выражают толщину линии в точках пользовательского интерфейса. Например, толщина 1,0 может соответствовать ширине экрана в два пикселя, если масштаб отображения составляет 200 % (см. EditorGUIUtility.pixelsPerPoint).

Линии разной толщины.
using UnityEngine; using UnityEditor; public class ExampleScript : MonoBehaviour { } // Отображает линии различной толщины в виде сцены [CustomEditor(typeof(ExampleScript))] public class ExampleEditor : Editor { public void OnSceneGUI() { var t = target as ExampleScript; var tr = t.transform; var position = tr.position; Handles.color = Color.yellow; for (int i = 0; i < 10; ++i) { var linePos = position + Vector3.right * (i * 0.5f); Handles.DrawLine(linePos, linePos + Vector3.up, i); } } }

Смотрите так же: Handles.lineThickness, Handles.DrawLines, Handles.DrawPolyLine, Handles.DrawWireDisc.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3