以前有遇到過這個問題:已知兩個坐標點繪制線段虐骑÷呈唬看到這個問題的時候鉴裹,第一想法是計算兩點的距離、角度钥弯,通過旋轉角度來解決這個問題径荔。
但是后來才發(fā)現(xiàn)可以用向量來解決。
private Transform _parentTran;
private GameObject _line;
private void Start()
{
Vector2 _startPos = new Vector2(100, 100);
Vector2 _endPos = new Vector2(200, 200);
//兩個點的中心點(因為line的錨點是中心點脆霎,縮放或者改變大小是根據(jù)中心點變化的总处,
//也可以將錨點設置為居左或者居右,就可以用開始坐標或者結束坐標來實例化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);
}
解決問題的方法有很多胧谈,如果你有更好的方法,歡迎相互討論荸频。