可视化调节工具

大概有这么几点~

  1. Gizmos类
  2. 绘制多边形、各种立体、射线

首先

讲一下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);//绘制射线
    }
}

猜你喜欢

转载自blog.csdn.net/QJH_12138/article/details/89930654