unity UGUI画线(Image方式)

		/// <summary>
		/// 画线
		/// 注意:startPoint和endPoint,须和lineTransform在同一路径层级下的位置关系!!!
		/// </summary>
		/// <param name="self"></param>
		/// <param name="lineTransform">LineImg RectTransform <param>
		/// <param name="startPoint"></param>
		/// <param name="endPoint"></param>
		/// <param name="lineColor"></param>
		/// <param name="lineWidth"></param>
		private void DrawLine(RectTransform lineTransform, Vector2 startPoint, Vector2 endPoint, Color lineColor, float lineWidth = 5f)
        {
            Log.Debug($"startPoint.x:{startPoint.x}; startPoint.y:{startPoint.y}; endPoint.x:{endPoint.x}; endPoint.y:{endPoint.y}");

            // 计算线条的方向和长度
            Vector2 direction = endPoint - startPoint;
            float length = direction.magnitude;

            // 如果长度为0,则不绘制线条
            if (length == 0) return;

            // 标准化方向向量
            Vector2 normalizedDirection = direction.normalized;

            // 设置线条的RectTransform属性
            float angle = Mathf.Atan2(normalizedDirection.y, normalizedDirection.x) * Mathf.Rad2Deg;
            lineTransform.localRotation = Quaternion.AngleAxis(angle, Vector3.forward);
            lineTransform.sizeDelta = new Vector2(length, lineWidth);
            lineTransform.anchoredPosition = startPoint + normalizedDirection * length * 0.5f; // 将线条中心放在起始点

            // 设置线条颜色
            lineTransform.gameObject.GetComponent<Image>().color = lineColor;
        }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值