Unity Editor 編輯器擴展 九 Gizmos

簡單介紹一下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

發佈了31 篇原創文章 · 獲贊 17 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章