Unity 6.3
0 онлайн 69 гостей 3 в системе
Вход

Handles.DrawWireDisc

Declaration

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

Параметры

Параметр Описание
центр Центр диска в мировом пространстве.
нормальное Нормальная диска в мировом пространстве.
радиус Радиус диска в единицах мирового пространства.
толщина Толщина линии в точках UI (нулевая толщина рисует линию одного пикселя).

Описание

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

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


Проволочный диск в представлении Scene.

using UnityEngine;
using UnityEditor;

// draw a red circle around the scene cube [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 для расчета подходящего размера для ручки манипулятора.

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


Диски различной толщины.

using UnityEngine;
using UnityEditor;

public class ExampleScript : MonoBehaviour { }

// Displays circles of various thickness in the scene view [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,.