我正在使用以下代码创建贝塞尔曲线.通过在场景视图中移动单击,可以扩展曲线以连接多个贝塞尔曲线.我的代码具有使整个曲线连续或不连续的功能.我意识到我需要使个别点(特别是锚点)具有此功能.
我认为最理想的方法是为具有此功能的点创建一个新类(使点连续或不连续),因为这可以用于添加可能特定于点的其他属性.怎么办呢?
路径
[System.Serializable]
public class Path {
[SerializeField, HideInInspector]
List<Vector2> points;
[SerializeField, HideInInspector]
public bool isContinuous;
public Path(Vector2 centre)
{
points = new List<Vector2>
{
centre+Vector2.left,
centre+(Vector2.left+Vector2.up)*.5f,
centre + (Vector2.right+Vector2.down)*.5f,
centre + Vector2.right
};
}
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 anchorPos)
{
points.Add(points[points.Count - …Run Code Online (Sandbox Code Playgroud) 这是如何使贝塞尔曲线的单个锚点连续或不连续的后续问题。请参考已接受答案中的相关代码(请注意,因为相关代码很长,我这样做是为了使这个问题保持清晰)。
我正在努力实现以下目标:
使bezier曲线手柄/控制点以如下方式可选:选中后,在检查器窗口中显示单个手柄的属性(例如,连续性)。请注意,我希望在不为手柄/控制点创建游戏对象的情况下完成此操作
保留用于处理每个点的移动的单个方法,而不要为每个点的移动使用单独的方法。