简单介绍一下Gizmos,在工程测试、编辑和Debug中用处还是挺多的。 目录
Gizmos 简单实用
当我们想在Scene窗口对物体进行标记时,可以选选择画一个简单的图形
using UnityEngine;
using System.Collections;
public class GizmosTest : MonoBehaviour {
// 选中时绘制一个方块
void OnDrawGizmosSelected ()
{
Gizmos.DrawCube (transform.position+Vector3.up, Vector3.one);
}
// 绘制一个球
void OnDrawGizmos()
{
Gizmos.color = Color.red;
Gizmos.DrawWireSphere (transform.position, 0.4f);
}
}
非选中效果:
选中效果:
Gizmos高级使用
当我们有一类物体都需要绘制Gizmos,需要表现比较复杂的效果时,可以在Editor文件夹下单独创建一个脚本
using UnityEngine;
using UnityEditor;
public class GizmosEditor
{
// 画一个cub线框,选中时为红色,补选中时为绿色
[DrawGizmo (GizmoType.NonSelected | GizmoType.Active)]
static void DrawExampleGizmos (GizmosTest example, GizmoType gizmoType)
{
var transform = example.transform;
Gizmos.color = Color.green;
// new Color32 (145, 244, 139, 210);
//Gizmos选中时为红色
if ((gizmoType & GizmoType.Active) == GizmoType.Active)
Gizmos.color = Color.red;
Gizmos.DrawWireCube (transform.position, transform.lossyScale);
}
// 选中物体时画一个线框球
[DrawGizmo (GizmoType.InSelectionHierarchy)]
static void DrawExampleGizmos2 (GizmosTest example, GizmoType gizmoType)
{
var transform = example.transform;
Gizmos.color = Color.blue;
Gizmos.DrawWireSphere (transform.position, 2);
}
}
显示效果非选中状态时:
选中状态时:
本文链接:http://write.blog.csdn.net/mdeditor#!postId=53444808
网友评论