拓展編輯器(十三)_拓展Scene檢視(輔助元素)
阿新 • • 發佈:2018-11-03
拓展Scene檢視:
Scene檢視承擔著遊戲“第三人稱”觀察的工作。Unity提供了強大的Gizmos工具API,我們可以在Scene檢視中繪製立方體,網格,貼圖,射線和UI等,開發者可以自由地拓展顯示元件。
輔助元素:
場景在編輯過程中,通常需要一些輔助元素,這樣使用者可以更高效的完成編輯工作。比如,我們在選中Main Camera物件時,程式會給攝像機元件新增一條紅色的輔助線,並且線上段終點處新增一個立方體輔助物件,程式碼如下:
using UnityEngine; public class 輔助元素 : MonoBehaviour { private voidOnDrawGizmosSelected() { Gizmos.color = Color.red; //畫線 Gizmos.DrawLine(transform.position, Vector3.one); //立方體 Gizmos.DrawCube(Vector3.one, Vector3.one); } }
Gizmo的繪製原理就是在指令碼中新增OnDrawGizmosSelected(),此方法僅在編輯模式下生效。使用Gizmos.cs工具類,我們可以繪製任意的輔助元素。請注意,這裡拓展的輔助元素只能用來編輯,並不會影響到最終釋出的遊戲。上述程式碼效果如下:
除此之外,如果希望輔助元素並不依賴選擇物件出現,而是始終都出現在Scene檢視中,可使用方法OnDrawGizmos()繪製元素,程式碼如下:
private void OnDrawGizmos() { Gizmos.DrawSphere(transform.position, 1); }
效果如下:
ps:關於Gizmos工具類
所有的Gizmos繪製需要在指令碼的OnDrawGizmos或者OnDrawGizmosSelected函式裡完成。其中,OnDrawGizmos會每幀呼叫,所有在OnDrawGizmos渲染的Gizmos都是可見的,而OnDrawGizmosSelected僅在指令碼附加的物體被選擇時呼叫。此外,Gizmos工具類中還有很多常用的繪製元素,讀者也可以自行摸索。