大概有这么几点~
- Gizmos类
- 绘制多边形、各种立体、射线
首先
讲一下Gizmos类
Gizmos用于场景中给出一个可视化的调试或辅助设置。所有的Gizmos绘制都必须在脚本的OnDrawGizmos或OnDrawGizmosSelected函数中完成。OnDrawGizmos在每一帧都被调用。所有在OnDrawGizmos内部渲染的Gizmos都是可见的。 OnDrawGizmosSelected仅在脚本所附加的物体被选中时调用。
需要注意的是,游戏在没有运行的时候,以上两个函数只要出现在,已经挂载在游戏对象上的脚本中,这两个函数就会自动的调用。可以将下面的代码分别放到脚本中测试,看控制台是否有输出。
在这里插入代码片
void OnDrawGizmos()
{
Debug.Log(“OnDrawGizmos”);
}
//游戏对象被选中时会被调用
void OnDrawGizmosSelected()
{
Debug.Log(“OnDrawGizmosSelected”);
}
绘制多边形、各种立体、射线
首先需要创建一个脚本用于测试绘制的区域,在创建脚本中添加如下代码,观察Unity场景。
using UnityEngine;
using System.Collections;
public class TestGizmos : MonoBehaviour {
public Vector3 center;//中心点
public Vector3 size;//立方体长宽高
void OnDrawGizmos()
{
Gizmos.color = Color.green;//绘制出图像的颜色
Gizmos.DrawCube(center,size);//绘制长方体或矩形
通过修改Inspector面板的center和size,观察场景中的图像变化,如下所示。
以上是绘制一个实心的长方体或长方形,只要将DrawCube修改成DrawWireCube方法,参数一样,可以看到不同的效果,大家可以自己动手尝试一下。
如下代码可以绘制一条线段。
using UnityEngine;
using System.Collections;
public class TestGizmos : MonoBehaviour {
public Vector3 from;//起点
public Vector3 to;//终点
void OnDrawGizmos()
{
Gizmos.color = Color.green;//绘制出图像的颜色
Gizmos.DrawLine(from,to);//绘制线条
}
}
如下代码可以绘制一个圆球和空心圆。
using UnityEngine;
using System.Collections;
public class TestGizmos : MonoBehaviour {
public Vector3 direction;//方向
public Vector3 from;//起点
void OnDrawGizmos()
{
Gizmos.color = Color.green;//绘制出图像的颜色
Gizmos.DrawRay(from,direction);//绘制射线
}
}