只要有程序員朋友們問過兩次的問題
就會收錄在此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熱更新全書-腳本(四)有介紹