Unity Editor 基础篇(五):Gizmos

来源:互联网 发布:c语言《》 编辑:程序博客网 时间:2024/04/30 01:36

本文参自:http://mp.weixin.qq.com/s/J9VaOcSROThSFzHRgjUkog

本文为本人学习上连接的笔记有改动,请点击以上链接查看原文,尊重楼主知识产权。

Unity Editor–Gizmos

目标:
1.了解一些属性的使用


最终效果:

这里写图片描述

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

这里写图片描述

如果是新的项目,只需创建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:图片的命名一定要与代码中的第二个参数的名字一样。

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

剩下的几个属性和方法大伙们可以自己去尝试一下。


文末:再次声明请尊重楼主版权:
http://mp.weixin.qq.com/s/J9VaOcSROThSFzHRgjUkog

0 0
原创粉丝点击