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
瓶裝雪的沙龍
117會員
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
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
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條平行輔助線。 心得:
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News