有哪些推薦的Unity3D開發方面的博客?
背景:
程序做了一年開始使用Unity3D,做過一些3D展示系統和幾個2D遊戲,都是一些小項目,沒有所謂的系統架構設計,導致的結果就是現在單純的實現功能沒問題,但是老覺得代碼不夠優雅,性能優化的餘地還很大,說白了就是沒有形成一套固定的高效的框架。所以希望大家能給一些建議(偏實踐方面的更好),或者推薦一些不錯的講Unity3D技術的博客,國內國外的都行,NGUI的也行。謝謝!2014-8-9修改重新理了一下思路。討論的主題也重新做了下修改:
1、在使用Unity進行項目搭建的時候,你都使用到了哪些框架思想或設計模式? 2、是否使用到了OOP中的MVC思想?效果怎麼樣?3、怎樣項目的優化還採取了哪些措施?
稍微整理一下
關於搭建框架
對於很多程序出身的人來,MVC思想的使用相當普遍,那麼在Unity開發中,MVC思想是否照樣適用呢?。首先,我們不得不面對的一個前提是,Unity的思想是基於組件開發(Components-Based Development),先看下面的鏈接,Unity: Now You"re Thinking With Components,文章介紹了什麼是組件,Unity為什麼要使用組件及是怎樣使用的。然後我搜到了一篇講從MVC轉換到基於組件開發的文章Back to Basic : Using Component Based Software Engineering in Unity3D,(文章打開排版可能會變亂,可以在鏈接最前面加https://),似乎MVC在Unity開發中並不適用,至少嚴格的MVC思想是沒辦法用在Unity開發中。
最後我又搜到了官方論壇中大家的討論How to design your code architecture in unity?,問題似乎也沒有太好的答案,但是還是有一些好用的建議,比如說使用單例,減少使用MonoBehaviors及什麼時候繼承MonoBehavior,什麼時候不繼承等等。
好了,到此為止,似乎還是沒有一套通用的架構來讓我們使用,是的,沒有。但是有幾個點我們可以作為參考:
1、恰當的使用單例
2、創建類的時候盡量不繼承MonoBehavior 3、界面之間傳遞消息的時候,使用委託模式來減少依賴(此條為個人經驗)補充:封裝也是OOP中經常用到的思想,但是在Unity開發中,某一模塊在多個項目中完美共用的情況還是比較少的,除非做的足夠靈活Unity design patterns and concepts, looking for good sources : Unity3D 這個是別人在開發過程中搜集的文章的鏈接,偏設計模式和概念,涵蓋委託、事件、單例、消息機制、對象池、MVC等等。
關於優化
Unity 3D Best Practices: Part 1 可以說是常識吧,不光解釋了是什麼,還解釋了為什麼Unity Optimization Tips ? UnityCoder Unity Optimization tips (usually not mentioned in docs..)關於優化的一些集錦
個人接觸最早的是雨松MOMO,Unity入門看的就是他的書,個人網站上關於Uniy的點比較多,覆蓋面較廣,對於接觸某一塊新的知識非常有幫助。雨松MOMO程序研究院
www.luzexi.com 很多基於項目的個人總結
PS:1、答案中的鏈接是我信手搜來的,多是其他開發者的個人總結,非官方解釋,所以需要我們共同討論2、由於本人水平有限,可能總結的很片面或者有些錯誤,歡迎大家指正和討論。Aras,unity的圖形開發,這裡是博客:Aras" website
Unity 遊戲框架搭建 (一) 概述
Unity 遊戲框架搭建 (二) 單例的模板
Unity 遊戲框架搭建 (三) MonoBehaviour單例的模板
Unity 遊戲框架搭建 (四) 簡易有限狀態機
Unity 遊戲框架搭建 (五) 簡易消息機制
Unity 遊戲框架搭建 (六) 關於框架的一些好文和一些思考
Unity 遊戲框架搭建 (七) 減少加班利器-QApp類
Unity 遊戲框架搭建 (八) 減少加班利器-QLog
Unity 遊戲框架搭建 (九) 減少加班利器-QConsole
Unity 遊戲框架搭建 (十) QFramework v0.0.2小結
Unity 遊戲框架搭建 (十一) 簡易AssetBundle打包工具(一)
Unity 遊戲框架搭建 (十二) 簡易AssetBundle打包工具(二)
Unity 遊戲框架搭建 (十三) 無需繼承的單例的模板
Unity 遊戲框架搭建 (十四) 優雅的QSignleton(零) QuickStart
優雅的QSignleton (一) Singleton單例實現
優雅的QSignleton (二) MonoSingleton單例實現
優雅的QSignleton (三) 通過屬性器實現Singleton
優雅的QSignleton (四) 通過屬性器實現MonoSingleton
優雅的QSignleton (五) 優雅地進行GameObject命名
Unity 遊戲框架搭建 (十五) 優雅的QChain (零)
Unity 遊戲框架搭建 (十六) v0.0.1 架構調整
Unity 遊戲框架搭建 (十七) 靜態擴展GameObject實現鏈式編程
Unity 遊戲框架搭建 (十八) 靜態擴展 + 泛型實現transform的鏈式編程
Unity 遊戲框架搭建 (十九) 簡易對象池
Unity 遊戲框架搭建 (二十) 更安全的對象池
自薦:jjyy.guru
文章寫得還是非常不錯的。32個贊!學習了!其實,我個人覺得,不能過於追求模式的設計,只要時刻有oop思想,簡單、清晰、易於修改的代碼就是好代碼。
雨松MOMO 不少人都提到啦
Candycat Blog 《Unity Shader 入門精要》的作者的博客
catlikecoding 裡面的C# 和 Shader教程都不錯
seba"s lab 裡面有講基於Unity的控制反轉(依賴注入)和ECS框架
最後!推薦下我自己的( ? ?ω?? )?
Allen Kashiwa Blog
晚輩在此推薦我的個人博客,因為興趣比較廣泛,這個博客實在難以找到一個合適的辭彙來描述,從結構上看技術類的文章比較多,然後文章水平時好時壞,就是這樣子……
CSDN博客:
http://blog.csdn.net/qinyuanpei
獨立博客:
https://qinyuanpei.github.io
能自我推薦下么。。http://www.u3dc.com/
推薦一下我參與的團隊博客,相對有些流水賬:http://www.xifarm.com
搜搜 宣雨松的博客,業內良心大牛!
可以看看我的學習站:http://www.unity3d.top/主要是把各種網站上比較好的unity開發資料匯總。
李敗天_新浪博客
之前也一直有考慮過這個問題,有想過用puremvc來用.
推薦閱讀:
※如何讓3D遊戲中人物上下樓腳踏實地?
※unity開發工作流程?
※Unity引擎編譯後的程序是如何運行在iOS和Android上的?
※遊戲程序員入門應該從Unity3D或Cocos2dx開始,還是從OpenGL和DirectX開始?
※DirectX和OpenGL如何抉擇?