已知两个坐标点用预制绘制线段

版权声明:欢迎转载,欢迎批评,共同学习,共同进步。如果有不正确的地方,希望帮我纠正! https://blog.csdn.net/qq_33461689/article/details/85109612

看到这个问题的时候,第一想法是计算两点的距离、角度,通过旋转角度来解决这个问题。

但是后来才发现可以用向量来解决。

 private Transform _parentTran;
    private GameObject _line;
    private void Start()
    {
        Vector2 _startPos = new Vector2(100, 100);
        Vector2 _endPos = new Vector2(200, 200);
        //两个点的中心点(因为line的锚点是中心点,缩放或者改变大小是根据中心点变化的,
        //也可以将锚点设置为居左或者居右,就可以用开始坐标或者结束坐标来实例化GameObject)
        Vector2 _tempPos = (_startPos + _endPos) * 0.5f;
        float distance = Vector2.Distance(_endPos, _startPos);//计算两点的距离
        _line.transform.SetParent(_parentTran,false);
         RectTransform _lineRect = _line.GetComponent<RectTransform>();
        _lineRect.localPosition = _tempPos;
        //向量,终点指向起点
        _lineRect.right = (_endPos - _startPos).normalized;
        //可以设置宽度,也可以是指scale
        _lineRect.sizeDelta = new Vector2(distance, _lineRect.sizeDelta.y);
    }

猜你喜欢

转载自blog.csdn.net/qq_33461689/article/details/85109612