Unity3d 異常與解決方案集合(持續)

2021-07-09 04:08:49 字數 3003 閱讀 5235

1:更新完unity的5.3.1 版本 後,開啟******frameworld_ugui 後出現

error cs0117: 'system.io.directory' does not contain a definition for 'delete'

error cs0117: 'system.io.file' does not contain a definition for 'writeallbytes'

具體

安裝完了後,在unity 的buildsetting 處就可以切換平台了,然後上面的問題就可以解決了。

2:android 部分手機在雲測試上面出現安裝不了的情況

這個問題查了好久最後發現在unity 打包配置處 也就是buildsetting處預設是安裝在sdcard上面的,而有些手機沒有sdcard,所以導致了安裝不上,改為安裝在internal only 即可

3:執行ulua自帶的demo 到時候出現

dllnotfoundexception: ulua 

luainte***ce.luastate..ctor () (at assets/ulua/core/lua.cs:36) 

helloworld.start () (at assets/ulua/examples/01_helloworld/helloworld.cs:9) 

網上找了一堆,大致上的解決方案

1> 將plugins放到assets目錄下

2>乙個是dll沒有找到的問題(

dllnotfoundexception: ulua

),目前得到的結論是,真機沒有打包libulua.so進包導致,或者模擬器也有些設定不對。

打包的時候把libulua.so打包進libs\armeabi-v7a

3> 重新wrap  然後重啟unity

然而以上並沒啥卵用

4>最後偶然發現我的unity中ulua在pc平台是x86_64位的,而實際上我的電腦是32位win7 系統,所以導致找不到了,突然發現plugins下其實是有乙個x86的壓縮包的,接壓後執行報錯消失(我估計很多人都被坑了)

4: lua 呼叫 c# 函式報錯

luascriptexception: [string "e:/github/******framework_ugui/assets/lua/log..."]:18: no overload for method 'logindata.equip' takes '3' arguments

stack traceback:

[c]: in function 'equip'

[string "e:/github/******framework_ugui/assets/lua/log..."]:18: in function

luainte***ce.luafunction.call (system.object args, system.type returntypes) (at assets/ulua/core/luafunction.cs:74)

luainte***ce.luafunction.call (system.object args) (at assets/ulua/core/luafunction.cs:88)

luascriptmgr.callluafunction (system.string name, system.object args) (at assets/ulua/source/base/luascriptmgr.cs:600)

loginuipanel.ongui () (at assets/xprojectdemo/loginuipanel.cs:15)

解決辦法: data.equip("pdw", "123456", 1);  ==>data:equip("pdw", "123456", 1); 將點號 改為 冒號即可。

5:     attempt to concatenate local 'trans' (a userdata value)

stack traceback:

[string "f:/xproject_framework/xproject_framework/asse..."]:8: in function 'getbuttonbypath'

[string "f:/xproject_framework/xproject_framework/asse..."]:13: in function

luainte***ce.luafunction.call (system.object args, system.type returntypes) (at assets/ulua/core/luafunction.cs:74)

luainte***ce.luafunction.call (system.object args) (at assets/ulua/core/luafunction.cs:88)

luascriptmgr.callluafunction (system.string name, system.object args) (at assets/ulua/source/base/luascriptmgr.cs:604)

凡是報錯提示是 (a userdata value)表示的是:lua不認識的資料型別,檢查一下你的資料型別是不是unity的,比如transform,gameobject等等,我這裡是這樣的在lua指令碼裡面這樣寫了~

print("transform ="..trans);  改為print("transform ="..trans.name); 就不會出錯了

Unity3D啟動報錯的解決方案

在windows server 2003 下安裝好unity3d,啟動時報錯 failed to initialize unity graphics.截圖如下 在網上搜了一下,說是要啟用d3d加速,於是dxdiag開啟dx診斷工具,發現d3d加速不可用 繼續google,有說可能是顯示卡沒有裝好,於...

Unity3D 常量 異常

異常 常量 使用const關鍵字來宣告某個常量欄位或常量區域性變數。常量欄位和常量區域性變數不是變數並且不能修改。常量可以為數字 布林值 字串或null引用,不能隨時更改。異常 可幫助您處理程式執行時出現的任何意外或異常情況。異常處理 使用 try catch 和 finally 關鍵字嘗試某些操作...

Unity 3d指令碼加密方案

unity 3d專案遊戲邏輯採用c 指令碼,我們知道c 編譯生成的dll或exe是il程式集。il程式集中有乙個metadata,記錄了程式集中的一切資訊,所以容易被反編譯。傳統的防破解方式是是對il程式集進行混淆或者加殼。但是這種混淆基本上只是做一些名稱混淆或流程混淆或者加一些打花指令。這種混淆或...