2014年12月8日 星期一

Unity:使用 Render Texture 製作小地圖

在之前曾發表的文章「Unity:製作雷達小地圖」的結尾有提到過該做法的一些可能缺點,而不管面對任何需求,通常也不是只有一種做法,如果使用的 Unity 是 Pro 版的話,其實我們也可以利用 Render Texture 來製作小地圖。

2014年11月25日 星期二

Unity:製作雷達小地圖

在許多遊戲中,都會需要小地圖導引,使玩家可以在不切換畫面的情況下確認本身的位置及方向,做得精細一點的,還可以標示週遭的敵人、寶物、NPC、任務等,通常這種小地圖在 Unity 中,只需要多建立一個 Camera 並調整 Depth 以及 Viewport Rect 欄位的值,使其產生子母畫面的效果即可,但有時候為了整體畫面設計以及更舒服的視覺效果,可能需要圓形或特殊形狀的小地圖,那麼就需要一些特殊的處理。

2014年11月10日 星期一

Unity:如何搬移 Lightmapping 資料?

在 3D 遊戲中,如果不是動態光影,通常為了改善效能,會為場景 bake 出 Lightmaps,來使遊戲執行時的靜態光影不需要進行即時的光影演算,而在 Unity 中也可以很方便地為場景 Lightmapping,可是 Lightmapping 資料卻不像 GameObject 一樣做成 Prefab 就可以供任何場景重複使用,甚至提供給其他專案使用;正因為 LightmapSettings 資料是存在於個別的場景的 Scene 檔中,所以要搬移就比較沒那麼方便。

2014年11月1日 星期六

解決 Mac OS X Yosemite 的 XAMPP 無法開啟 MySQL 的問題

當 Mac 安裝 Yosemite 完成,開啟 XAMPP 後,如果想啟動 MySQL 會發現點擊 Start 按鈕之後並不如預期的啟動 MySQL,等待良久之後,狀態(Status)又會從 Starting 回復到 Stopped,此時,查看 Application log 會發現只有 Starting MySQL Database... 這樣的訊息而已,沒有其他資訊,無法看出究竟是發生什麼問題。

2014年10月11日 星期六

Unity:設計靈活的無縫場景轉換機制-實作測試

繼上次發佈的「Unity:設計靈活的無縫場景轉換機制」一文,獲得一些回應及提問,發現遺漏掉某些資訊未提及,同時,避免內容說明的不易理解,所以這次來舉例實作,並提供實作的專案檔案內容,給有興趣的人當作參考。

2014年9月23日 星期二

Unity:設計靈活的無縫場景轉換機制

剛開始學習使用 Unity 時應該會發現到,Unity 的儲存並非只有儲存專案(Save Project),較常使用到的是儲存場景(Save Scene),在整個遊戲專案的製作過程中,除非將全部的遊戲畫面都放在同一個場景中處理,否則我們將會儲存多個場景,雖然,Unity 的 Build Settings 中的 Scenes In Build 可以很方便的指定遊戲將會使用到哪幾個場景,而在我們設計的遊戲程式碼之中,也可以很方便地使用 Unity API 中的 Application.LoadLevel() 來載入場景,但這些都只是進行場景轉換的基本動作,在整個遊戲開發上,因應實際需求及考量上,很有必要另行設計一個方便變換及設定的場景轉換機制。

2014年8月10日 星期日

Unity:使用 PHP 的 Session 進行 Server 端驗證以及傳遞資料

相信曾經使用 PHP 製作過具備會員機制的互動式網頁系統的人對於 Session 都不陌生,它可以很方便的確認網頁客戶端的身份、驗證登入狀態以及傳遞資料給同一使用者於下一次請求時使用;而現今已有許多行動裝置遊戲也都具備營運方自己的會員機制以及 Server 端的遊戲邏輯應用及資料庫,以行動裝置的使用族群環境來看,似乎比較少使用所謂長連接的 socket 連線,而比較常見的是類似互動式網頁的非同步連線機制;所以,以下將解說如何使用 Unity 實現 PHP 的 Session。

2014年6月9日 星期一

Unity:自定腳本模板 script template

通常我們在 Unity 編輯器內的 Project view 建立新的 script 檔案時,Unity 會先幫我們指定預設的檔名及預先填入比較通用的 script 內容,如果是 C# 檔,檔案內的 class 名稱也會自動符合檔名,但有時候我們的需求並不是 Unity 預先幫我們建立的那樣,則要每次都手動去改掉,好像有點麻煩;其實這部分是可以自定義的,將來每次新建 script 檔案就不用另外修改了。

2014年5月6日 星期二

Unity:應對各種螢幕比例自動調整畫面縮放及位置


以前曾經發佈過一篇文章『Unity 自動調整 GUI 縮放比例及位置』說明如何應對各種不同解析度畫面,以佔滿版面的方式自動縮放調整 GUI 位置及大小,但這種方式有很大的缺點就是 GUI 遇到比例不同的畫面時,會被拉扯變形,使得圓形變成橢圓形這類的問題發生,而且,現今多數 Unity 使用者可能已不使用 Unity 內建的 GUI class 來製作 UI,而改使用 NGUI、DF-GUI 等其他工具來製作,或是利用自製平面 Mesh 配合 GUI class 來使 GUI 與場景內的其他物件互動更靈活,同時,在 Unity 4.3 發佈了 Unity Native 2D Tools 之後, Unity 在 2D 應用上更為方便及普遍,這也代表著處理 2D 畫面的縮放及位置調整將變得更為重要,所以本篇文章將同時說明 Camera 及 Unity 內建 GUI 在維持原比例以及不維持原比例時的自動縮放及位置調整。

2014年1月13日 星期一

Unity 4.3 之後,Animation 的 PingPong 到哪裡去了?

如果有常使用 Unity 的 Animation 製作物件動態或特效的人,應該都會覺得這是個很方便的工具,只要掛在 GameObject 上的 Component 有 public 欄位,幾乎都能利用 Animation view 建立 Animation Curve 來使該欄位的值隨曲線動態變化,而由這些 Animation Curve 組成的 Animation Clip 可以設定 Wrap Mode,使動畫可以 Loop 不斷重複循環或 PingPong 來回播放,但在 Unity 4.3 之後,Animation view 有些變化較大的更新,設定 Wrap Mode 的欄位竟然不見了,如此一來,使用 Unity 4.3 的使用者該如何使用 PingPong 的功能呢?