美文网首页Unity开发
已知两个坐标点用预制绘制线段

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

作者: 不文不武的禾文 | 来源:发表于2020-04-16 23:00 被阅读0次

    以前有遇到过这个问题:已知两个坐标点绘制线段。看到这个问题的时候,第一想法是计算两点的距离、角度,通过旋转角度来解决这个问题。

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

     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);
        }
    

    解决问题的方法有很多,如果你有更好的方法,欢迎相互讨论。

    相关文章

      网友评论

        本文标题:已知两个坐标点用预制绘制线段

        本文链接:https://www.haomeiwen.com/subject/iygjvhtx.html