1、先弄个Image (以下命名为Line),设置为如下格式:
其高度就是连线的长度,Pivot的Y值设置为0是为了方便后面旋转的时候能绕起点旋转。
2、以上述的Image的原点为起点,以目标位置为终点。
那么线段的长度很容易计算,直接调用 Vector3.Distance 就可以了。
Vector3 targetPos = mTarget.localPosition;
Vector3 curPos = transform.localPosition;
Line.rectTransform.sizeDelta = new Vector2(8, Vector3.Distance(targetPos, curPos));
3、设置Image的旋转,使其指向终点:
//设置角度;
double angle = Math.Atan2(targetPos.y - curPos.y, targetPos.x - curPos.x) * 180 / Math.PI;
Line.transform.rotation = Quaternion.Euler(0, 0, (float)angle + 270);
这样就完成了在UGUI上连接两点的线段。