現學現賣 IntelliJ+EmmyLua 開發調試Unity中Xlua

來源:互聯網
上載者:User

孫廣東  2017.8.23   

http://blog.csdn.NET/u010019717


推薦一下這個國人弄的基於IntelliJ IDE 弄得外掛程式 EmmyLua 。  他的QQ群: 29850775  

github: https://github.com/tangzx/IntelliJ-EmmyLua

oschina: http://git.oschina.net/tangzx/IntelliJ-Lua

IDEA Plugins :   https://plugins.jetbrains.com/plugin/9768-emmylua

文檔:     https://tangzx.github.io/emmydoc/  

 

 

          啟動並執行時候可能會報錯:   Program [lua.exe] not found.  怎麼辦。  外掛程式的不足之處沒有內建lua環境, 需要自己安裝比如  “Lua for window ”。  希望外掛程式以後能內建環境。  按照作者的回複考慮體積搞大“至少兩個平台 32 64,再加上luasocket模組, 還要考慮平台和版本問題 ”內建是不可能了。   傳送門:

方式一、 Lua for Windows  的下載(跟原始碼相比會版本落後一些)

 https://github.com/rjpcomputing/luaforwindows/releases

而且內建了 編輯器 SciTE, 

 同時  工具幫我們配置了環境變數(外掛程式就是通過這個環境變數找到的lua.exe)

方式二、下載 bin  檔案 http://luabinaries.sourceforge.net/download.html ,

解壓到安裝軟體的地方,  然後配置環境變數就行。(注意 lua.exe 是我拷貝的 lua53.exe 然後重新命名的)


 

 

首先,安裝外掛程式。  注意對IDEA 的版本有一個要求不能低於 2017.1

理論上如果你安裝過一下任意一個產品, 只要版本夠高, 都可以安裝這個外掛程式

“IntelliJ IDEA,  PhpStorm, WebStorm , PyCharm, RubyMine,  AppCode,  CLion ,Gogland  ,DataGrip  ,Rider , Android Studio”

 

以 Rider 2017.1.1 為例(但還是推薦使用IDEA , 否則可能沒辦法建立Lua項目)

        File -> Settings  然後

        你可以把外掛程式下載到本地, 然後選擇從磁碟安裝,   也可以在IDEA工具內搜尋安裝(我是這種)。 


          然後在右側  點擊  Install  安裝, 重啟就行了。

 

註: 可能會出現下載不了的問題, 這個跟使用的網路電訊廠商有關。  只能使用另外一種方式安裝了。。。

 

   重啟後, 建立項目  (或者  開啟項目選擇Lua檔案  所在的檔案夾就行。)


           在 src 目錄下, 建立一個 main.lua 檔案,  輸入 

print("Test main")

        運行, 正常輸出, 不報錯就 OK !

試試Debug 模式運行, 設定斷點 都是正常的。。

 

 

 

 

要把Unity項目匯入才行:

       IDEA中  File -> New -> Module from Existing Sources  選擇Unity 項目的 Assets就行。 

 

 

怎麼調試項目中lua代碼呢

File -> Project Structure 中  (這個源本身是可以添加多個的。)


 

        我遇到的問題是設定  Sources Root 的過程,  比如說我就要調試  xlua 項目的 LuaTestScript.lua.txt 指令碼 。

               群中管理員的解答: “root 是你代碼裡面 訪問lua檔案的根目錄”,

比如 你的代碼在 src/lua/test/1.lua  裡面  你代碼裡面用的時候是  'test/1.lua' 那你的 lua目錄就是root 。  xlua中這種訪問是指什麼呢。 

       比如下面的LuaBehaviour.cs 中   luaEnv.DoString的第二個參數 。


 

Try attachto pid:39556 with x64 debugger.

Found allnecessary Lua functions [M:xlua.dll, V:530]

Debuggerattached to process.

Attachfinish.

[✘]File not found : Init

[✘]File not found : LuaBehaviour

 

提示有這兩個東西沒找到。

               執行個體代碼中是有錯誤的, LuaBehaviour.cs 中將    luaEnv.DoString的第二個參數 改成LuaTestScript.lua.txt可以找到。 還差那個 Init 不知道是啥。 

Try attach to pid:39556 with x64 debugger.

Found all necessary Lua functions [M:xlua.dll, V:530]

Debugger attached to process.

Attach finish.

[✘] File not found : Init

[√] File was loaded : LuaTestScript.lua.txt

 

VS 內 全域搜尋"Init"   ,lua是作為cs中的字串 , 就是 LuaEnv.cs  檔案中。  把參數改為“LuaEnv.cs ”   他所在 Xlua\Src 檔案夾下, 要添加這個源。   結果是不行的

“如果lua代碼不是單獨的檔案, 而是在cs 中的字串 可以斷點調試麼。 ”  答案是後續可能會支援, 現在是不可以地。    不過不影響正常調試,想要調試的lua指令碼被正常載入就行了。  不管了。

 

 

 

 

 

        xlua 預設的lua檔案名稱字是 .lua.txt 實際上就是.txt 怎麼能讓這個IDEA關聯.txt 到EmmyLua 件上。

            


 

 

代碼提示忽略大小寫:


 

 

他的代碼提示是怎麼做到的

       所謂的註解。 EmmyLua註解功能只是單純的輔助編輯器代碼提示以及其它功能,和Lua代碼的實際運行邏輯沒有任何關係,因為它們就是普通的Lua注釋。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.