Unity C# | 遊戲製作輔助線Gizmos & 常用函數清單

更新於 發佈於 閱讀時間約 5 分鐘

前言

  Gizmos是製作輔助線的函式,用於繪製物理設線視覺化、協助重疊物件點擊、紀錄物件移動路徑等等,用途將相當廣泛,算是非必要的輔助程式,用於輔助遊戲製作。

  射線和視線等等偵測機制,其實對於遊戲製作相當重要,原本繪製輔助線只是要給偵測範圍可視化,順便多學一些Unity程式代碼,沒想到炸出Physics RayCast等一系列雷射相關程式。

Gizmos介紹

詞彙

  Gizmos有英文中的「小發明」跟「小玩意兒」的意思,不過實際使用就是輔助線的意思,因為的確是輔助遊戲製作的小程式,所以叫做小玩意兒也不算太奇怪。

Unity 相關設定

  在Unity中,無論是Game還是Scenes中,在視窗的右上角都擁有一個Gizmos的按鈕,按下去會亮,代表在這個視窗中會顯示Gizmos。

基本參數

Gizmos有四個基本參數,如下:

  • color(顏色) 。繪製輔助線的顏色
  • exposure(曝光)。不常用,跟材質相關。
  • matrix(矩陣),如果輔助線會轉動等需要使用。
  • probeSize(探測針大小)。不常用,渲染相關。

啟動函式

  在Unity中,Gizmos有兩個啟動函式:

  • 程式(Script)展開時才會運作的OnDrawGizmos()
  • 程式(Script)展開和選擇時才會運作的OnDrawGizmosSelected()。
OnDrawGizmos()
{

}
DrawGizmosSelected()
{

}

常用程式函數

  因為這篇文章主要作為導覽跟紀錄,所以不會詳細介紹每一個函數,我會將官方網站的清單放在正下方,有興趣可以自行參閱。

P.S Vector3指的是三維座標,也可以只儲存二維。

01. DrawCube (Vector3 center, Vector3 size)

  繪製一個實心正方形,自帶兩個參數,中心點參數及正方形大小

02. DrawLine (Vector3 form,Vector3 to)

  繪製一條線,自帶兩個參數,起點到終點。

03. DrawRay (Vector3 from,Vector3 Direction)

  繪製一條雷射,自帶兩個參數,起點跟方向。  

04. DrawShpere (Vector3 center, Vector3 radius)

  繪製一個實心圓,自帶兩個參數,分別為中心點跟半徑。

05. DrawWireCube(Vector3 center, Vector3 size)

  繪製一個空心正方形,自帶兩個參數,中心點參數及Cube大小

06. DrawWireSphere(Vector3 center, Vector3 radius)

  繪製一個空心圓,自帶兩個參數,分別為中心點跟半徑。

官方網站 Unity ScriptingAPI: Gizmos

使用方式

  Gizmos的運作方式跟 Start 和 Update 相似,套用前面的Gizmo程式碼,以前者作為舉例,直接在裡面寫上需要繪製的內容即可。

OnDrawGizmos()
{
  Vector3 origin = new Vector3 (0,0,0);
  Vector3 direction = new Vector3 (1,0,0);

  Gizmos.Color = new color (1,1,1,1);
  Gizmos.DrawRay(origin,direction);
}

移動物件的使用方式

  在 Unity 中 Gizmos 的座標是世界座標,如果希望輔助線隨物體移動,只需要加上一條簡單的程式碼即可。

OnDrawGizmos()
{
  Vector3 origin = new Vector3 (0,0,0);
  Vector3 direction = new Vector3 (1,0,0);

  Gizmos.matrix = transform.localToWorldMatrix;
  Gizmos.Color = new color (1,1,1,1);
  Gizmos.DrawRay(origin,direction);
}

結語

  Gizmos雖然並沒有使用太多,不過感覺會式相當重要的程式,尤其在程式的維護及傳承,對於之後的程式美術配合跟程式員彼此配合都相當有用,而且不需要也可以關起來,可以說是相當重要的輔助程式。

  更新:近期開始正式使用Raycast,因此重新拾回了Gizmos的用法,對於可視化繪製,的確是相當重要的內容。


raw-image


留言
avatar-img
留言分享你的想法!
avatar-img
瓶裝雪的沙龍
111會員
247內容數
你好,我是瓶裝雪!我是一名遊戲設計師!
瓶裝雪的沙龍的其他內容
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/01/26
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
2024/01/26
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
2023/12/29
講述遊戲設計從新手到專業的發展方向。
Thumbnail
2023/12/29
講述遊戲設計從新手到專業的發展方向。
Thumbnail
看更多
你可能也想看
Thumbnail
家中修繕或裝潢想要找各種小零件時,直接上網採買可以省去不少煩惱~看看Sylvia這回為了工地買了些什麼吧~
Thumbnail
家中修繕或裝潢想要找各種小零件時,直接上網採買可以省去不少煩惱~看看Sylvia這回為了工地買了些什麼吧~
Thumbnail
👜簡單生活,從整理包包開始!我的三款愛用包+隨身小物清單開箱,一起來看看我每天都帶些什麼吧🌿✨
Thumbnail
👜簡單生活,從整理包包開始!我的三款愛用包+隨身小物清單開箱,一起來看看我每天都帶些什麼吧🌿✨
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
模擬世界是我們寫程式造出來的,我們就是模擬世界的主宰,所以各種作用力要長什麼樣子、要怎麼個作用法,都由我們決定。不過,如果希望這些作用力看起來像真實世界的作用力一樣,那在寫程式的時候,套用這些作用力在真實世界中的物理公式,會是比較省時省力的做法。
Thumbnail
模擬世界是我們寫程式造出來的,我們就是模擬世界的主宰,所以各種作用力要長什麼樣子、要怎麼個作用法,都由我們決定。不過,如果希望這些作用力看起來像真實世界的作用力一樣,那在寫程式的時候,套用這些作用力在真實世界中的物理公式,會是比較省時省力的做法。
Thumbnail
這篇文章將會從基本概述到射線偵測應用的詳細步驟,講述運用射線改變特定圖層中,射線命中的物件顏色。
Thumbnail
這篇文章將會從基本概述到射線偵測應用的詳細步驟,講述運用射線改變特定圖層中,射線命中的物件顏色。
Thumbnail
這篇文章將會講述常見的座標(Transform)旋轉方式,適合初學者到進階程式員複習。
Thumbnail
這篇文章將會講述常見的座標(Transform)旋轉方式,適合初學者到進階程式員複習。
Thumbnail
這篇文章將會講述 Unity Visual Effect Graph 的系統簡介,並且簡單介紹這項系統主線上的四個核心組件。
Thumbnail
這篇文章將會講述 Unity Visual Effect Graph 的系統簡介,並且簡單介紹這項系統主線上的四個核心組件。
Thumbnail
這篇文章將會講述 Blockout 的介紹和適合的材質。
Thumbnail
這篇文章將會講述 Blockout 的介紹和適合的材質。
Thumbnail
這篇文章將會講述圓形波的設計思路、製作流程和應用方向。
Thumbnail
這篇文章將會講述圓形波的設計思路、製作流程和應用方向。
Thumbnail
這篇文章將會講述物理射線的運作原理,以及他們怎麼使用,在 Unity 中射線是非常重要的一個部分,無論是 Debug 或是物理射線,都需要理解並懂得運用。
Thumbnail
這篇文章將會講述物理射線的運作原理,以及他們怎麼使用,在 Unity 中射線是非常重要的一個部分,無論是 Debug 或是物理射線,都需要理解並懂得運用。
Thumbnail
本文使用LibreCAD繪製太極圖,以輔助線的方式繪圖。 筆者於一開始任意繪製一垂直線後,於畫線指令集當中,點選平行線功能,並輸入平行距離值為50。將滑鼠移到線段旁邊,就會產生一平行線虛影,點選滑鼠左鍵後,就會正式產生平行線,我們一共需要5條平行輔助線。 心得:
Thumbnail
本文使用LibreCAD繪製太極圖,以輔助線的方式繪圖。 筆者於一開始任意繪製一垂直線後,於畫線指令集當中,點選平行線功能,並輸入平行距離值為50。將滑鼠移到線段旁邊,就會產生一平行線虛影,點選滑鼠左鍵後,就會正式產生平行線,我們一共需要5條平行輔助線。 心得:
Thumbnail
這篇文章為介紹C#基礎知識的一部分,如果你是直接開始寫程式的C#程式員,可以看看這篇文章補足一些基礎知識。
Thumbnail
這篇文章為介紹C#基礎知識的一部分,如果你是直接開始寫程式的C#程式員,可以看看這篇文章補足一些基礎知識。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News