小编Sup*_*ing的帖子

如何制作bezier连续或不连续的单个锚点

我正在使用以下代码创建贝塞尔曲线.通过在场景视图中移动单击,可以扩展曲线以连接多个贝塞尔曲线.我的代码具有使整个曲线连续或不连续的功能.我意识到我需要使个别点(特别是锚点)具有此功能.

我认为最理想的方法是为具有此功能的点创建一个新类(使点连续或不连续),因为这可以用于添加可能特定于点的其他属性.怎么办呢?

路径

[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)

c# unity-game-engine unity3d-editor

18
推荐指数
1
解决办法
938
查看次数

如何使编辑器句柄可选以显示属性检查器窗口

这是如何使贝塞尔曲线的单个锚点连续或不连续的后续问题。请参考已接受答案中的相关代码(请注意,因为相关代码很长,我这样做是为了使这个问题保持清晰)。

我正在努力实现以下目标:

  1. 使bezier曲线手柄/控制点以如下方式可选:选中后,在检查器窗口中显示单个手柄的属性(例如,连续性)。请注意,我希望在不为手柄/控制点创建游戏对象的情况下完成此操作

  2. 保留用于处理每个点的移动的单个方法,而不要为每个点的移动使用单独的方法。

unity-game-engine unity3d-editor

5
推荐指数
1
解决办法
793
查看次数

标签 统计

unity-game-engine ×2

unity3d-editor ×2

c# ×1