[Unity] 關於判斷 Image 中參數是否為 null 的小細節 – Detecting Tricky Null Fields in Image

這是今天遇到的小問題,是關於如何判斷 Image 的 Material 為 None 的方法。

可以看到下圖中的 Image Inspector 介面有兩個欄位顯示為 None,分別對應到 Image.spriteImage.material 這兩個 API,不過這兩個 API  雖然同為 None,但在腳本中的可完全不是這回事。

1507805935946

Read More »

廣告

[OpenGL] 一些功能的實作練習 – Some Practice of OpenGL

完成了一段 OpenGL 的線上課程後,基本上理解了幾個 OpenGL 功能的實作方式,並且試過了從讀取 Model 到渲染至螢幕上的流程。

不過課程中的解說僅止於 “如何做到",為了能確認 “為何這麼做",釐清每個 OpenGL API 如何呼叫,我開始了一個練習的新專案。

用這篇文章紀錄一下目前所做出來的練習與心得。

Read More »

[學習心得] OpenGL 線上課程 – Review OpenGL Online Course

將 《Modern OpenGL C++ 3D Game Tutorial Series》這個 OpenGL 的線上課程完結了,比起預計所花的時間短了不少。

OpenGL 是個發展已久的 Graphics API,當遊戲光靠 CPU 已經無法負擔,需要透過 GPU 來 “硬體加速" 畫面處理的工作時,相對的溝通工作便可以用這類 API 來完成。

雖然還有其他 Graphics API,但我選擇了 OpenGL 作為入門,並碰巧遇上了這門線上課程的優惠。完成了課程後,在這邊記下一些心得,讓其他想接觸 OpenGL 或這門線上課程的人作為參考。

Read More »

[Unity] 用 VS Code 寫腳本與除錯 – Using VS Code as Script Editor in Unity

通稱 VS Code,全名 Visual Studio Code 的軟體是一款針對程式開發所設計的文字編輯器,也是一款受到 Microsoft 支援的 Open source 軟體。

VS Code 有著輕量、更新快速的優點,並有很多現成套件提供奇奇怪怪的功能強化。Unity 自 5.5 版後特別針對了 VS Code 進行了相容性更新,所以跟 Unity 的互動性也得到了改善,最近我正式從 Visual Studio 轉移到 VS Code 來開發 Unity 了。

本篇文章記錄了我安裝 VS Code 作為 Unity 腳本編輯器所遇到的細節、問題與解法,有 Windows 跟 Mac OSX 兩個平台。

Read More »

[Unity] 獨立自控的 UI 切換架構 – Independent UI Switching

過去在我的其他文章介紹過利用 狀態模式 / 狀態機 來控制遊戲程式的流程,是我相當喜歡且穩定的作法。在一般使用狀態機的情境下,所有的 UI 開關都由狀態機中的邏輯決定,UI 本身只是作為畫面表現的客體存在。

不過若用狀態機做為開發的專案核心,則代表會需要有一套是先架構的核心系統。如果是臨時的小型 prototype,或者在 game jam 環境展開的專案,引入一套架構並要新成員馬上建立起使用規範來利用這套系統,是有點不實際的。

所以是否有擺脫狀態機,甚至沒有一個集中式核心的小型替代方案可以用來管理流程跟 UI 切換呢?本文便是以此為出發點,所做的一個嘗試。

Read More »

[Unity] 另一個物件池的實現 – Another Practicing of Object Pool

前天寫了篇文章《[Unity] 物件池的實現 – Practicing of Object Pool》討論 物件池 (Object Pool) 的使用目的,以及一個簡單的實作例子。

本文是要介紹另外一個新出爐的實作方式,考慮跟 Unity 機制做配合,以改善下面兩點:

  • 因為需要在場景中有一個物件來掛載物件池,如果要切換場景但保留物件池,需要特別建立為 DontDestory 物件。
  • 如果不是本來就設置在場景中,而是要跟 Resources 或 AssetBundle 中的 Prefab 做動態的配合,會不方便建立新的物件池。

實作方式

Read More »