demo 工程地址 :http://pan.baidu.com/s/1qWBYxqc
我們接上篇 內容繼續講 http://www.cnblogs.com/zyc-it/p/4820810.html
(1)工程分離
什么叫工程分離呢,就是要把你的游戲包(后面簡稱 #主工程#),和你的熱更新工程(后面簡稱 #熱更新工程#) 分離開。首先我先說一下 ,我為什么要這么做:
原因:從github 上更新下來的 jsb的工程,把所有的熱更新代碼寫在了unity 里面了,然后在 熱更新工程里面 去引用這些cs 文件。在我看來 不是真正的解耦,有些潛在的風險(直覺 ~~!)
怎么做: 很簡單,我以我的demo 工程為例子,我新建了一個工程(demo里面 使用的jsb ,是我自己改過的,jsbsetting.cs 配置里面有很多東西用起來不順手),我添加玩熱更新工程之后 ,如圖:
那我熱更新工程怎么去引用原來的已經綁定的cs 類呢,ok,我編譯一下unity 主工程 ,然后用熱更新工程引用就可以了 如圖
這時候在就可以放心的在熱更新工程里面寫代碼了
請記住你在是用vs (宇宙第一編輯器,寫熱更新代碼,我各種語法提示,高亮,很方便),我只想說,你喜歡用luastudio,記事本, 寫熱更新腳本,我不攔你,我丑 我用vs
(2) 命名空間保護
原因 :jsbsetting 里面有各種目錄配置,指明 這寫目錄里面的 類,導出或者不導出,記住這些東西 太累啦,太不安全了。你想象吧 ,程序員寫代碼的時候,要記住我要導出的類,在那個文件夾里面.....
怎么做:
什么意思,我所有的導出類,都有特定的命名空間 前綴,我為什么要這樣做呢,還記得 第一條經驗嗎,我引用主工程生成的dll 之后,我就可以用dll 特定的命名空間的里面的類了,其他的命名空間里面的類不允許,
是不安全的,是不被導出的,是非常危險的,是肯定會出錯的。所以說 總結一下 讓熱更新工程里面的 只可以引用主工程里面特定的 命名空間,代碼非常安全。
接一下 ,我會分享jsb 如何使用protobuff 作為網絡協議,及其具體用法,最后歡迎大家加入jsb 群:189738580。