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

Handles.DrawWireDisc

Объявление

public static void DrawWireDisc(Vector3 center, Vector3 normal, float radius, float thickness = 0.0f);

Параметры

center Центр диска в мировом пространстве.
normal Нормаль диска в мировом пространстве.
radius Радиус диска в мировых космических единицах.
thickness Толщина линии в точках пользовательского интерфейса (нулевая толщина рисует линию в один пиксель).

Описание

Рисует контур плоского диска в трехмерном пространстве.

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

Проводной диск в окне сцены
using UnityEngine; using UnityEditor; // рисуем красный круг вокруг куба сцены [CustomEditor(typeof(CubeExample))] public class CubeEditor : Editor { void OnSceneGUI() { CubeExample cubeExample = (CubeExample)target; Handles.color = Color.red; Handles.DrawWireDisc(cubeExample.transform.position, new Vector3(0, 1, 0), cubeExample.circleSize); } }

Куб:

using UnityEngine; public class CubeExample : MonoBehaviour { public float circleSize = 3.0f; }

Вы можете использовать HandleUtility.GetHandleSize, чтобы вычислить подходящий размер дескриптора манипулятора.

Дисковая линия толщина может быть установлена дополнительно. Нулевая толщина рисует линию в один пиксель. Большие значения толщины выражают толщину линии в точках пользовательского интерфейса. Например, толщина 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) { Handles.DrawWireDisc(position + Vector3.right * i, Vector3.forward, 2, i); } } }

Смотрите так же: Handles.lineThickness, Handles.DrawLine, Handles.DrawSolidDisc, Handles.DrawWireArc.

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