【Unity3d开发记录】Unity动态画曲线、弧线(GL画线)在UI上的显示

开发过程中遇到了一个问题,在UI上动态画弧线,花了一天的时间,终于解决了,拿来和大家分享一下(个人场景里只有UI)。

我才用的动态画线的方法是GL画线,有一定的性能开销,unity版本5.3.2.。

GL画线是直接显示在屏幕上的,我想用GL画出UI上一个点的运动轨迹,经过尝试终于实现,首先是UGUI的实现方法:


将Canvas的RenderCamera设置为主摄像机,然后再讲主摄像机的Culling Mask包括UI。

我的GL画线的方法也是在网上找的,一个叫DrawLine的类,自己修改了一下,有兴趣的可以自己找一下。

上一段记录画线点的代码:

 Vector3 screenVector;//屏幕坐标
    void DrawLineBlack()
    {

//将物体坐标转为屏幕坐标
        screenVector = Camera.main.WorldToScreenPoint(target.transform.position);
        if (startDraw1 == true)
        {
            //将每次物体旋转过的位置存储进链表  
            lineInfo1.Add(screenVector);
        }
    }

这样画出的线就可以在UI上方看到了。

然后是NGUI的,显示画线,这里实现起来并不复杂:

首先将主摄像机的深度值调整为大于UI相机,


然后在上一段代码:

Vector3 screenVector1;//屏幕坐标
    void DrawLineBlack()
    {
        screenVector1 = UICamera.mainCamera.WorldToScreenPoint(targetBlack.transform.position);
        if (startDraw1 == true)
        {
            //将每次物体旋转过的位置存储进链表  
            lineInfo1.Add(screenVector1);
        }
    }

这次的camera换成了UICamera。

最终都实现了显示画线的效果。


  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值