Unity Editor 基础篇(五):Gizmos辅助线框

源地址:http://gad.qq.com/article/detail/33466

在之前的项目或者新建的项目中创建如下目录结构:



如果是新的项目,只需创建Scripts和Gizmos就好。


该文章用的到API:

    


传送门:http://www.ceeger.com/Script/Gizmos/Gizmos.html


PS:这篇文章相对简单,但克森还是会细致的介绍一遍,因为这篇文章也是该系列的一部分,如果有了解过的朋友可以忽略该篇。


由上图可知,Gizmos是用于在场景视图可视化调试或辅助设置用的。


需要注意的是所以Gizmos的绘制必须在脚本的OnDrawGizmos或OnDrawGizmosSelected里编写,因此我们的第一步便是在脚本中添加这两个函数。

   

在Scripts文件夹中创建一个C#脚本,命名为:“MyGizmos”,双击打开脚本,码入如下代码:



让我来测试一下:



咦,感觉不对啊,感觉不是每一帧都在调用啊!克森做了个测试,如果你在Scene视图下不做任何错误(鼠标滑动也不能调用这两个函数),这两个函数都没有调用(看来官方文档说得不完全啊!!)。


不管了,总之大伙们知道是这么一回事儿就行了。


PS:必须于Scene视图下,于Game视图下不起作用。


接下来为“MyGizmos.cs”脚本添加如下代码:


好,现在回到场景视图下,如下图所示操作:



哦豁,我们的线框球体便出来了,是不是很简单啊。


代码分析:

该函数的第一个参数是该线框球体的中心点位置,它是一个Vector3类型。


第二个参数是该线框球体的半径大小,它是一个float类型。


接下为我们的脚本添加如下代码:



好,现在回到场景视图下,如下图所示操作:



哦豁,我们的线条便出来了,是不是很简单啊。


代码分析:


 


上图已经解释得非常清楚,两个参数表示:从from起点到to位置绘制一条线。


因此第一个参数就是起点的位置,第二个参数就是指定的位置。



上面代码的意思就是当前的位置朝 Z-轴 正方向根据 size 的值扩大。


接下来为我们的脚本“MyGizmos.cs”添加如下代码:



好,现在回到场景视图下,如下图所示操作:



如上图所示,我们通过for循环调用Gizmos.绘制出了5个实心球体。


代码分析:



由上图可知。第一个参数是绘制该球体的中心点的位置,第二个参数是该球体的半径。


因此在我们的代码中,利用for循环依据nodePoints参数创建多个球体,在上面的案例中克森创建了5个球体,设置它们的半径为0.5(大伙们也可以添加一个参数,进行动态操作半径值)。


由于绘制的东西都是一个色,不好辨别,大伙们可以添加如下代码:



添加后的效果:



我们的球体变成了蓝色,我们的线条编程了红色,未设置的线框球体还是默认的白色。


PS:Gizmos.color = Color.blue,如果后续没有重新指定绘制的颜色,则使用最后一次设置的颜色。


接下来为我们的脚本“MyGizmos.cs”添加如下代码:



回到场景中看看有什么效果:



好了,从上图中大家也知道我们添加的这段代码的意思了吧。很简单,就是将这些球体给连接起来。对了,连接线是绿色的,是克森后面设置的,大伙们也可以去设置设置,怎么设置就不用克森说了吧?


由于这段代码和上一篇的某段代码一样,克森就不分析了。



尴尬了,克森发现最后要将的东西已经在前面暴露出来了。。。就是下图的这个东西:



相信这个东西大伙们都知道怎么设置吧,不过为了该文章的完整性,我们还是来操作一遍:



好了,这个是手动设置的,那么代码中又是如何设置的呢?


请大家添加如下代码:



回到场景中,看看有什么效果发生。


咦,没有什么事情发生啊!!!



哦,原来是找不到图片资源。如上图所示,这就是为什么文章的开头让大伙们创建 Gizmos 文件夹的原因。现在将一张你喜欢的图标,命名为:“icon.jpg”放入Gizmos文件夹中。


PS:图片的命名一定要与代码中的第二个参数的名字一样。


好吧,至此该篇文章的内容就此结束,是不是很无聊啊。不过没办法,必须要系列完整嘛。

猜你喜欢

转载自blog.csdn.net/yongshuangzhao/article/details/80224755