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

Unity中使用向量绘制动态线条

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

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值