Unity Editor 编辑器扩展 九 Gizmos

15 篇文章 7 订阅

简单介绍一下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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值