基礎系統的框架搭建,其中包括:程序員
NGUI
+ MVC
)Advanced CSharp Messenger
)Socket
+ Protobuf
)Protobuf
)Unity 5.x
的 AssetBundle
方案)tolua
)使用 Unity 5.x
進行遊戲開發的朋友,估計大都想過用系統自帶的 UGUI
來搭建UI框架,這並無什麼很差的,只是對於引擎升級並不友好,假如Unity升級對 UGUI
作了比較大的修改,那麼對一個成型的項目進行引擎的升級,修改爲本是不可估量的,因此這裏我仍是選用 NGUI
做爲搭建UI框架的工具,除告終合 MVC
架構還要考慮後期接入熱更新。c#
這裏咱們使用 Advanced CSharp Messenger
這種C#事件實現的消息管理器,特色就是能夠將遊戲對象做爲參數發送。並且,這個先進的c#版本的消息傳遞系統會自動清理事件表在一個新的水平加載,這將防止程序員意外調用銷燬方法,從而有助於防止許多 MissingReferenceExceptions
。這個消息傳遞系統是基於杆海德 CSharpMessenger 和馬格努斯Wolffelt CSharpMessenger擴展。服務器
隨着移動網絡的升級,在4G網絡早已普及的今天,除了單機遊戲,如今絕大多數的網遊都是以強聯網的方式實現的,選用 Socket
通訊能夠實時地更新玩家狀態,選定了聯網方式以後,還須要考慮網絡協議定製的問題,Protobuf
無疑也是個比較好的選擇,一方面是跨平臺特性好,另外一方面是數據量小能夠節省通訊成本。多線程
《Unity 3D遊戲客戶端基礎框架》多線程異步 Socket 框架構建
《Unity 3D遊戲客戶端基礎框架》 protobuf網絡框架架構
在遊戲開發中,有不少數據是不須要經過網絡層從服務器拉取下來的,而是經過表格配置的格式存儲在本地,例如:遊戲中的一個道具,一般服務器之下發該道具的 Id
(惟一標識)和 lv
(等級),而後客戶端從本地數據中檢索到該道具的具體屬性值。一般使用 Excel
表格來配置數據,但咱們通常不會直接將 .xlsx
格式的表格原文件打包到遊戲應用包中,一般會經過工具序列化爲二進制文件的格式,讀取數據的時候再進行反序列化。上面咱們提到了使用 Protobuf
定製網絡協議,可是其實 Protobuf
的序列化和反序列化特性能夠知足咱們對於表格數據轉化的需求。框架
《Unity 3D遊戲客戶端基礎框架》protobuf 導excel表格數據異步
對於資源的管理,實際上是爲了給後面接入熱更新提供可能,Unity製做遊戲的資源管理方式就經過 AssetBundle
工具將資源打成多個 ab
包,對於可熱更新的資源進行熱更的時候,並不是單文件的熱更,而是經過網絡下載新的 ab
包來替換本地舊的包,從而實現熱更的目的。工具
一般使用C#來進行Unity的開發,但純C#腳本只能支持Android系統下的熱更新,而對於iPhone系統則無能爲力,因此這裏一般須要引入一門腳本語言 lua
,使用C#編寫底層框架,使用lua編寫業務邏輯,這是業內最多見的設計方式,還有一個很是成熟的熱更新框架 tolua
(前稱 ulua
)。一般可熱更新的有:圖片資源、UI預製和lua腳本,而出於跨平臺的考慮,C#腳本是不容許進行熱更的。ui
上面只是大體說了一遍整個框架會涉及到的工具和技術點,下面我會對每一個點進行逐篇細化,有興趣的能夠繼續關注下,固然能夠根據這些建議本身自學,那樣也可能會快不少。
轉載地址:http://blog.csdn.net/linshuhe1/article/details/75175112