聲明:本帖可能包含聯盟鏈接,這意味著如果您點擊鏈接併購買我們推薦的產品,我們可能會獲得佣金。點擊這些鏈接不會花費您任何費用,但可以幫助我資助我的開發項目,同時還能推薦優質資源!

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 的功能呢?

2012年2月9日 星期四

C# : 使用 MySQL 的 Transaction

資料庫程式的運作上,我們常常會需要查出某筆資料取得某項資訊,然後依照此資訊修改另一筆資料,修改完再次取出資料經過一些程式判斷的結果,又再對某個資料表新增或刪除資料.... 一連串複雜的動作需要一次完成,通常這是一瞬間就能處理完成的事,所以不應該會中斷;但是當伺服器相當忙錄時,同時有多位使用者對資料庫要求這一系列的連續動作,那麼動作之間就很可能不是處理同一使用者的請求,取得的資料也可能不是預計的正確資料,所以新增、修改、刪除也可能會出錯,為了使這些工作能夠正確,我們可以使用 Transaction 來確保工作過程無誤,如果工作不順利而發生問題無法正確完成,則退回到工作開始前的狀態。