unity真機(jī)快速開發(fā)調(diào)試構(gòu)思

移動開發(fā)特別是游戲開發(fā)領(lǐng)域,可熱更新基本是標(biāo)配。我們的項目是采用Unity同時是采用第三方插件綁定c#與lua實現(xiàn)可熱更新。一段時間以來都是先在unity IDE開發(fā)完畢功能,之后再到手機(jī)上進(jìn)行真機(jī)測試。由于真機(jī)環(huán)境畢竟與IDE環(huán)境有一定差別,所以真機(jī)上測試時有時出現(xiàn)一些不好查找的問題。當(dāng)遇到這樣的問題時候之前唯一的測試方式就是加入輸出日志,打個版本,運(yùn)行,測試。在修改下輸出日志,打個版本,運(yùn)行測試。就這樣反反復(fù)復(fù)都快肝硬化了。這樣下去不妥,于是自己就試著思考能否優(yōu)化這里面的一些環(huán)節(jié),提升測試效率。

既然已經(jīng)實現(xiàn)lua熱更新,那基于lua可以動態(tài)編譯運(yùn)行的特性,我想在真機(jī)運(yùn)行的時候是可以替換具體某個的lua文件的并運(yùn)行新的腳本?;谶@樣的出發(fā)點我列出了一下幾個關(guān)鍵技術(shù)點。

1.本地編輯器與手機(jī)端通信,實現(xiàn)手機(jī)端可獲得變化的文件內(nèi)容

2.手機(jī)端替換變化lua文件并運(yùn)行

3.本地編輯器需要能夠監(jiān)聽文件變化。

4.手機(jī)端將日志同步到本地并在編輯器輸出。

基于以上幾點點我得到了第一版解的決方案。

本地編輯器選用 Sublime Text3 這個工具輕便靈活,同時便于擴(kuò)展。通過它用python編寫插件實現(xiàn)本地編輯與手機(jī)客戶端通信,本地文件變化監(jiān)聽,輸出手機(jī)端的日志。通信方式采用采用http(采用這個方式的初衷是與伙伴能快速出原型)為不與具體項目耦合所以該功能基于插件開發(fā)思想使其獨立具體的項目。具體架構(gòu)如下圖一:

圖一

圖中有三大模塊:manager_debug_service(調(diào)試賬號管理系統(tǒng)),sublime-plugin (文本編輯插件), client-application(真機(jī)客戶端控制部分)

manager_debug_service:目的是管理注冊賬號便于其他開發(fā)者使用,這里每當(dāng)開啟一個調(diào)試端都會注冊一個賬號和服務(wù)端連接地址 。當(dāng)手機(jī)測試的手可輸入賬號去這個系統(tǒng)獲得調(diào)試編輯服務(wù)器地址。然后手機(jī)客戶端 client-application 直接連接 sublime-plugin 進(jìn)行調(diào)試。

在開發(fā)的時候還是覺得這套系統(tǒng)還是有不方便的地方。比如會配置一個調(diào)試賬號管理系統(tǒng)。這個系統(tǒng)對客戶端來說有些不方便。manager_debug_service系統(tǒng)是否可以去掉?基于這樣的考慮就有了第二版本的方案

調(diào)整方案:

1.去掉manager_debug_service系統(tǒng)。

2.將服務(wù)端 從sublime-plugin移動到client-application

3.通信方式采用socket?

4.sublime-plugin 用戶連接要測試的手機(jī)端

基于上面幾點第二版架構(gòu)如下圖二:


圖二

這樣第二版就比第一版簡單許多只有client-application 系統(tǒng)和sublime-plugin系統(tǒng)

client-application :有debug 部分和 application logic 部分,如果獨立具體項目實際只有debug部分,application logic 部分只是實現(xiàn) debug部分的提供用于調(diào)試的 interface-debug接口。

基于這套系統(tǒng)的思想可以做很一些擴(kuò)展延伸比如:斷點調(diào)試系統(tǒng),自動測試系統(tǒng),手機(jī)實時開發(fā)系統(tǒng)等等。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • Swift版本點擊這里歡迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh閱讀 26,123評論 7 249
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實...
    香橙柚子閱讀 24,760評論 8 183
  • 馬云曾經(jīng)說過“人一定要有夢想,萬一實現(xiàn)了呢?” 唐谷人就是一群有夢想并且敢于挑戰(zhàn)的人,敢于拼搏的人,今天 我們...
    芹菜185閱讀 231評論 0 0

友情鏈接更多精彩內(nèi)容