我需要创建复杂的分段贝塞尔曲线,所以我想更新代码以创建illustrator/photoshop类笔工具贝塞尔曲线.此视频显示了pentool的行为方式.
请注意,不是使用前两个锚点创建二次贝塞尔曲线(如视频中所示),我宁愿选择立方体(如链接代码示例中所示).
以下是我已经实现的Illustrator/photoshop笔工具的功能,这些功能是Unity中复制所必需的.
在第一次单击时在同一个鼠标点创建所有锚点/控制点(在第一次单击时创建对象)
当鼠标点从第一次点击移动(未按下)时,控制点将与两个锚点一起落入以创建一条直线(三次曲线)
当单击并拖动鼠标(距离第一次点击任何距离)时,控制点远离直线移动以形成基于拖动方向的曲线,当拖动距离增加时,它们的长度也会增加单击.
在创建曲线期间重新选择第一个锚点时,应关闭路径
我也不确定如何解决上述问题,但这是我到目前为止编写的代码:
BPath:
[System.Serializable]
public class BPath
{
[SerializeField, HideInInspector]
List<Vector2> points;
[SerializeField, HideInInspector]
public bool isContinuous;
public BPath(Vector2 centre)
{
points = new List<Vector2>
{
centre+Vector2.left,
centre+Vector2.left,
centre+Vector2.left,
centre+Vector2.left
};
}
public Vector2 this[int i]
{
get
{
return points[i];
}
}
public int NumPoints
{
get
{
return points.Count;
}
}
public int NumSegments
{
get
{
return (points.Count - 4) / 3 + 1;
}
}
public void AddSegment(Vector2 …Run Code Online (Sandbox Code Playgroud)