如何在 2D Unity 的画布上使用 LineRenderer 绘制线条,以便线条不会沿对角线移动到 A 点

How do I draw lines using LineRenderer on a canvas in 2D Unity, so that the lines don't go diagonally to point A

提问人:begluka0 提问时间:9/6/2023 更新时间:9/6/2023 访问量:27

问:

我正在尝试构建一个逻辑门模拟器,但是,我注意到我使用的线条绘制系统看起来很凌乱且没有组织,无法在两个门之间绘制导线......

我试图避免它从 A 点对角线到 B 点的事实,但是,我不确定该怎么做,或者所谓的线条绘制类型:这就是我试图避免的

相反,我想要一个系统,可以做这样的尖角,并使其看起来更有条理:这就是我试图做的

这是我试图实现的另一幅图画:一个逻辑门抽屉,我试图实现的东西

这是我用来在 2 个选定对象之间绘制线条的代码:

using UnityEngine;

public class LineDrawer : MonoBehaviour
{
    public Transform startPoint;
    public Transform endPoint;
    private LineRenderer lineRenderer;

    private void Start()
    {
        lineRenderer = GetComponent<LineRenderer>();
        lineRenderer.positionCount = 2;
    }

    private void Update()
    {
        if(startPoint != null && endPoint != null)
            RefreshLine();
    }

    private void RefreshLine()
    {
        lineRenderer.SetPosition(0, startPoint.position);
        lineRenderer.SetPosition(1, endPoint.position);
    }
}

它非常简单,并且可以完成它需要做的事情,但我需要一种方法让它自动切断接线,以便它干净利落......

unity-game-engine 用户界面 数学 图形 2D

评论

0赞 BugFinder 9/6/2023
绘制多条线
0赞 begluka0 9/6/2023
有没有一个方程式可以用来更有效地做到这一点?或者也许是一个教程?我会找到一个教程,但我什至不确定如何准确表达这个问题,以及如何查找它......
1赞 hijinxbassist 9/6/2023
在中间添加 2 个点,将 x 设置在 2 个现有点 x 之间的某个位置,将 y 分别设置为起点和终点 y 的值。
0赞 derHugo 9/6/2023
问题是你问的是如何画线(如上@hijinxbassist所述,只需添加更多仅在矩形运动中的点)......但是,我认为您实际上要求/寻找的是一种算法,用于首先布局给定的项目和连接 - 这在这里太宽泛了

答: 暂无答案