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

Handles.DrawBezier

Declaration

public static void DrawBezier(Vector3 startPosition, Vector3 endPosition, Vector3 startTangent, Vector3 endTangent, Color color, Texture2D texture, float width);

Параметры

Параметр Описание
startPosition Начальная точка линии Безье.
endPosition Конечная точка линии Безье.
startTangent Начальный касатель прямой Безье.
endTangent Конечный касатель прямой Безье.
цвет Цвет, используемый для линии Безье.
текстура Текстура, используемая для рисования линии Безье.
ширина Ширина линии Безье.

Описание

Нарисуйте текстурированную линию Безье через начальную и конечную точки с заданными касаниями.

Для получения эффекта сглаживания используйте текстуру размером 1x2 пикселей с одним прозрачным белым пикселем и одним непрозрачным белым пикселем. Кривая Безье будет прорисована с помощью этой текстуры.

Примечание: Используйте HandleUtility.GetHandleSize там, где вы хотите иметь постоянные ручки размера экрана.


Линия Безье в Виде Scene.

using UnityEditor;
using UnityEngine;

[CustomEditor(typeof(BezierExample))] public class DrawBezierExample : Editor { void OnSceneGUI() { BezierExample be = target as BezierExample;

be.startPoint = Handles.PositionHandle(be.startPoint, Quaternion.identity); be.endPoint = Handles.PositionHandle(be.endPoint, Quaternion.identity); be.startTangent = Handles.PositionHandle(be.startTangent, Quaternion.identity); be.endTangent = Handles.PositionHandle(be.endTangent, Quaternion.identity);

// Visualize the tangent lines Handles.DrawDottedLine(be.startPoint, be.startTangent, 5); Handles.DrawDottedLine(be.endPoint, be.endTangent, 5);

Handles.DrawBezier(be.startPoint, be.endPoint, be.startTangent, be.endTangent, Color.red, null, 5f); } }

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

using UnityEngine;

public class BezierExample : MonoBehaviour { public Vector3 startPoint = new Vector3(-5f, 2f, 0f); public Vector3 endPoint = new Vector3(5f, -2f, 0f); public Vector3 startTangent = new Vector3(0f, 2f, 0f); public Vector3 endTangent = new Vector3(0f, -2f, 0f); }