【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。

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


猜你喜欢

转载自blog.csdn.net/liuleitheone/article/details/51270746
今日推荐