startPosition | 贝塞尔线段的起始点。 |
endPosition | 贝塞尔线段的结束点。 |
startTangent | 贝塞尔线段的开始切线。 |
endTangent | 贝塞尔线段的结束切线。 |
color | 用于绘制贝塞尔线段的颜色。 |
texture | 用于绘制贝塞尔线段的纹理。 |
width | 贝塞尔线段的宽度。 |
使用给定的切线,通过开始和结束点绘制带纹理的贝塞尔线段。
要获得抗锯齿效果,请使用一个 1x2 像素的纹理,该纹理包含一个透明的白像素和一个不透明的白像素。将使用该纹理扫过贝塞尔曲线。
注意:在可能需要保持屏幕大小不变的控制点上使用 HandleUtility.GetHandleSize。
场景视图中的贝塞尔线段。
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); } }
以及附加到该控制点的脚本