很多渲染套件或特效都會用上 OnPostRender
或 OnRenderImage
等,是一般 GameObject 上撰寫遊戲邏輯時較少用到的事件。
最近在大量處理著與畫面相關的項目,感到對這些事件不夠熟悉,於是重新讀過一些資料,留些筆記備忘。
一個開發者的點點滴滴 – ABOUT A GAME DEVELOPER
很多渲染套件或特效都會用上 OnPostRender
或 OnRenderImage
等,是一般 GameObject 上撰寫遊戲邏輯時較少用到的事件。
最近在大量處理著與畫面相關的項目,感到對這些事件不夠熟悉,於是重新讀過一些資料,留些筆記備忘。
此篇文章是《從零開始的 Unity 學習心得》系列的第五篇文章,這個系列是記錄我對 Unity 的開發及學習心得,包含我用何種方式去理解 Unity 的運作,並且在我所知的範圍內盡可能說明相關原理與開發要點。完整系列的目錄可以參考:
今天在使用 Json.NET 處理讀取到的 Json 文字檔案,要反序列化為 Object 物件資料時遇到了一個錯誤:
1 | Unexpected character encountered while parsing value: e. Path '', line 0, position 0. |
後來找出了原因並解決了,是關於檔案在某些文字編輯器儲存時會留下的 BOM 字元,導致 Json 格式錯誤。
初淺地研究,嘗試自行撰寫 Physically Based Rendering shader。目前 javascript 用的還不是很習慣,非同步與事件順序常常會轉不過來,但 WebGL 作為一個練習寫 shader 的環境來說還是相對方便的。
前陣子在找四元樹與八元樹的資料,發現了 three.js 這個套件,被用於做四元樹相關演算法的圖像展示。
three.js 是一個重新封裝 WebGL 語法的一個 javascript library,大幅降低開發 WebGL 的難度,之前有簡單接觸過 OpenGL,這次趁著週末便來挑戰看看 WebGL 吧!
此篇文章是《從零開始的 Unity 學習心得》系列的第四篇文章,這個系列是記錄我對 Unity 的開發及學習心得,包含我用何種方式去理解 Unity 的運作,並且在我所知的範圍內盡可能說明相關原理與開發要點。完整系列的目錄可以參考:
此篇文章是《從零開始的 Unity 學習心得》系列的第三篇文章,這個系列是記錄我對 Unity 的開發及學習心得,包含我用何種方式去理解 Unity 的運作,並且在我所知的範圍內盡可能說明相關原理與開發要點。完整系列的目錄可以參考:
上篇文章說明了幾個 Unity 的基本組成,並且開始接觸 MonoBehaviour。這篇文章將延續話題,聊聊我對於 Unity 物理系統 – 一個最常用在與 MonoBehaviour 共築遊戲邏輯的系統 – 的理解。
此篇文章是《從零開始的 Unity 學習心得》系列的第二篇文章,這個系列是記錄我對 Unity 的開發及學習心得,包含我用何種方式去理解 Unity 的運作,並且在我所知的範圍內盡可能說明相關原理與開發要點。完整系列的目錄可以參考:
這次主要重點放在 場景、物件、組件 的關係,以及撰寫 MonoBehaiour 腳本時可能會用上的一些經驗談。
此篇文章是《從零開始的 Unity 學習心得》系列的第一篇文章,這個系列是記錄我對 Unity 的開發及學習心得,包含我用何種方式去理解 Unity 的運作,並且在我所知的範圍內盡可能說明相關原理與開發要點。完整系列的目錄可以參考:
在開始深入 Unity 之前,我會建議先有點撰寫程式的概念。而這篇文章會先說明,遊戲程式與一般學習程式語言時撰寫的單次性程式的差異:遊戲迴圈。
我初次接觸 Unity 是在 2015 年 9 月左右,當時沒有任何做遊戲或互動媒體的經驗,一個基本只會 C++ 跟一點 Web 開發的畢業生加入了遊戲公司,從沒聽過 Unity 也沒寫過 C# 開始,一路學習到現在。
一路上依賴網路自學,拆解公司舊專案當參考,追趕新專案的需求,在去年 2016 的 4月前後,接觸了 Unity 相關的網路社群 (Unity 應用領域、You can make game),開始了大量吸趴的一年。
如今又過了一年,雖然憑著兩年實作經驗可能還只能算隻小菜鴨,更多深入專精的遊戲開發技術也尚未掌握起來,而這篇文章是想寫下到目前為止,我學習 Unity 的過程與理解。
因為我是從已經有程式底子的情況來學習 Unity,所以這系列的內容會有較多的程式視角,但我會盡量從沒基礎的角度進行補充,作為一個基本觀念的系列文章。
如果這系列文章,可以作為某人進入遊戲開發的敲門磚,我想便足矣。
前幾天用 Unity 的 uGUI 元件組合出了雷達圖效果,同時也能夠及時的修改數值,表現在圖表上,是個蠻有趣的嘗試。
如果要完整表達內容,可能要搭配大量的圖片,所以這次嘗試使用影片的方式來分享實作。
過去在《[C#/Unity] 更多 Singleton – More Singleton in Unity》這篇文章中,實作了一個名為 Singleton manager 的物件來做 Singleton 的註冊與使用。
但最近在研讀 相依性注入 (Dependency Injection) 相關文章時,才發現有個叫做 Service Locator 的設計模式,基本上就是我過去所實作的 Singleton manager。再加上一些關於抽象化的觀念又比當初更成熟了,因此便想趁機改善當初的設計,同時正名為 Service Locator。
這是看 Unity 官方 Youtube 頻道的影片後,留下來的筆記。
相關連結:
最近有在看最新的奧特曼影集《奧特曼Geed》,同時也回頭重看了小時候最後看過的《奧特曼蓋亞》。
這周《奧特曼Geed》第 17 集到了一個劇情階段,剛好《奧特曼蓋亞》也幾乎全部看完了,也看了不少網路上的討論,突然便想來寫篇文章抒發想法。
將 《Modern OpenGL C++ 3D Game Tutorial Series》這個 OpenGL 的線上課程完結了,比起預計所花的時間短了不少。 OpenGL 是個發展已久的 Graphics API,當遊戲光靠 CPU 已經無法負擔,需要透過 GPU 來 “硬體加速” 畫面處理的工作時,相對的溝通工作便可以用這類 API 來完成。 雖然還有其他 Graphics API,但我選擇了 OpenGL 作為入門,並碰巧遇上了這門線上課程的優惠。完成了課程後,在這邊記下一些心得,讓其他想接觸 OpenGL 或這門線上課程的人作為參考。
一路下來這個課程可以學到:
不過這個課程並不會詳細解說每個項目背後的原理,包括每個使用到的 OpenGL API 的細節功能也不會清楚的解釋,基本上就是把課程內容分別舉例子實作一次,並提供給大家原始碼做為參考。 上述的每個項目都是在 3D 繪圖、遊戲製作的一些基本需求,透過這個課程可以理解如何用 OpenGL 達成這些需求。 但是因為沒有描述原理,所以沒有 3D 繪圖的一些觀念時,會在講者編輯程式碼與解說時產生疑惑,變成知其然而不知其所以然的窘境,甚至鴨子聽雷的情況。
事前如果有 3D 繪圖的一些觀念,或者有細究過遊戲繪圖,上起這門課程會容易些:
這門課是用 C++ 為使用語言,所以當然對 C++ 要有一定程度的了解,包括類別 (class)、指標 (pointer)、標頭檔 (header file) 如何在 C++ 中使用,而不是只有條件是跟迴圈的程度。 另外如果先擁有撰寫 shader 的基礎 (Unity shaderLab 等任何 shader 實作手段都行),那基本上就沒問題了,否則最低限度至少要先知道 vertex shader 與 fragment shader 的意義。
就個人感覺來說,如果是要做為初學者的教學,這段線上課程所包含的內容有點貧乏。許多的原理跟 API 細節沒有解說,會在課程剛開始時感到疑惑,必須另外去找資料或文件確認 API 的功能。 但是因為網路上自學 OpenGL 的影片相當少見,就這點來說還是相當值得的。比起慢慢地閱讀文件或文章,自行做實驗來學習,實際操作的影片可以更好的引導進入狀況,配合自己在每個小節後查資料解惑,很快就能對 OpenGL 掌握到一定程度。 利用這門課當作敲門磚,我自覺算是很順利地進入 OpenGL 的世界,未來只要再補上更多原理細節即可。 可以來想想要做些甚麼作品來當作練習,檢查自己的理解了。
《Unity のエディター拡張》後所留下的簡單筆記,第九到十一章。 介紹了 CustomEditor,也就是最常被使用的 自訂 Inspector 操作介面,這幾個章節內容很多,我覺得介紹依舊尚淺而有些不明白。 CustomEditor 真是博大精深的領域!
《Unity のエディター拡張》後所留下的簡單筆記,第六到八章。 前五章以介紹內建的 Editor 功能為主,六到八章開始進入了自訂 EditorGUI 的部分了,然後是 EditorWindow。
閱讀《Unity のエディター拡張》後所留下的簡單筆記,第一到五章。 這是日本 Unity 技術人員 安藤圭吾 針對 Unity Editor 所寫的一本電子書,可透過下方連結看到原文。
《Unity shader 入門精要》的讀書筆記,十六章到十九章。 十六章說明渲染上的優化方向;十七章簡單說明了 surface shader;十八章簡單說明了 PBS 技術。 十九、二十章說明一些 Unity 的更新,以及精進渲染技術知識的方向。
#pragma surface
用於定義使用的函數及光照模型