Unity Editor 编辑器扩展 之 Gizmos

简单介绍一下Gizmos,在工程测试、编辑和Debug中用处还是挺多的。 目录

Gizmos 简单实用
Gizmos高级使用

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容