小编hut*_*elt的帖子

如何创建一个illustrator/photoshop-like pentool用于在Unity中创建贝塞尔曲线

我需要创建复杂的分段贝塞尔曲线,所以我想更新代码以创建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)

c# unity-game-engine unity-editor

9
推荐指数
1
解决办法
147
查看次数

标签 统计

c# ×1

unity-editor ×1

unity-game-engine ×1