Unity3D熱更新全書FAQ


只要有程序員朋友們問過兩次的問題

就會收錄在此FAQ中

 

1.C#Light對比LUA有什么好處

C#Light是靜態類型腳本語言,語法同C#,Lua是動態類型腳本語言,這兩種都有人喜歡。

我更喜歡靜態類型,於是有了C#Light

2.C#Light性能怎么樣

C#Light和Unilua 和ulua都做過簡單性能測試,比Unilua快,和ulua各有勝負

3.C#Light IOS可以使用么

完全可以,均妥善測試

4.為什么C#Light例子和NGUI一起用會編譯不過

因為Unity沒有庫的概念,要每個項目里都放一份源碼,這樣會讓GITHUB代碼變得非常凌亂。

所以在例子里是直接把C#Light 的DLL放進來了.

實際要改例子的話,請刪除CSLightEvil35.DLL,直接從CORE中找到C#Light的源碼,C#LE目錄,然后將這個目錄直接插入Unity項目。

5.為什么C#Light有那么多限制,使用類型還要注冊

因為C#Light的設計之初就為了兼容AOT拋棄了很多,而兼容AOT就是為了能在IOS上順利使用。

為此,我們不能運行時產生新的IL類型,所以不能繼承程序的類型。所以腳本class類型和程序class類型不同

不能運行時模板推斷,所以不能自動List<T>,要手動綁定List<int>,List<String>

不能運行時模板推斷,所以不能自動調用GetComponent<T> 這類方法,改調用 GetComponent(“UILabel”) as UILabel

這些限制都是由AOT兼容導致,用一點點約束,換來IOS的兼容性,還是值得的

6.C#Light出錯怎么查

有統一的Dump機制,在Unity3D熱更新全書-腳本(三)有介紹

7.C#Light的代碼放在StreamingAssets里是什么意思,真的能熱更新么

真的可以熱更新,你把例子生成exe,改了streamingassets的腳本,再運行就會有效果。

放在StreamingAssets里是為了演示可以在運行時加載字符串處理,同時例子比較容易看

實際項目還是要把腳本獨立放出來,在Unity3D熱更新全書-腳本(四)有介紹


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM