http://blog.csdn.net/u010019717/article/details/77510066?ref=myreadhtml
http://blog.csdn.NET/u010019717git
推薦一下這個國人弄的基於IntelliJ IDE 弄得插件 EmmyLua 。 他的QQ羣: 29850775 github
github: https://github.com/tangzx/IntelliJ-EmmyLuawindows
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模塊, 還要考慮平臺和版本問題 」內置是不可能了。 傳送門:socket
方式一、 Lua for Windows 的下載(跟源代碼相比會版本落後一些)編輯器
https://github.com/rjpcomputing/luaforwindows/releaseside
並且自帶了 編輯器 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註釋。
https://tangzx.github.io/emmydoc/ 文檔中提到 , 具體內容看文檔!
@class類聲明註解
完整格式:---@class {my_type}[ : parent_type] @comment string
@type類型標記註解
完整格式:---@type {my_type}[|other_type] @comment string
@param參數類型標記註解
完整格式:---@param {param_name} {my_type}[|other_type]@comment string
@return函數返回值註解
完整格式:---@return {my_type}[|other_type] @comment string
@field屬性註解
完整格式:---@fieldpublic|protected {my_field} {field_type}[|other_type] @comment string
數組類型
完整格式:---@typeMY_TYPE[]
字典類型
完整格式:---@typetable<KEY_TYPE, VALUE_TYPE>
函數類型
完整格式:---@typefun(param:MY_TYPE):RETURN_TYPE
因此平時本身寫lua 代碼這些註解最好都添加! 做爲一種規範,也便於閱讀!
相似於這樣的示例代碼:
https://tangzx.github.io/emmydoc/annotations/example.html
註解好像能解決現有的lua 中API ,
若是咱們要訪問Unity等相關API怎麼辦? 加入qq羣, 他們有解決辦法
qq羣: 文件 -》 其它 中有 「UnityLuaAPI.zip」 能夠下載 。 若是要看他是怎麼生成的, 能夠看視頻:
qq羣: 文件 -》 文檔 中有「IDEA+EmmyLua開發lua的教程.mp4」 視頻中會介紹,生成須要 tolua 的框架在Unity中生成。 這個其實生成越多越全越好,反正也不會實際包含在項目中!
下載完成後拷貝到不會被刪除的路徑下, lua安裝環境變量位置或者lua項目裏均可以。 回到 IDEA , File -> Project Structure
仍是回到 main.lua 腳本中: 輸入
---@type UnityEngine.GameObject
local go
這樣在使用 go 變量的時候就會看到他的代碼提示了!
還好比定義以下函數
local function test(trans)
end
將光標 定位到 trans 上 , 快捷鍵 「Alt + Enter」
選擇 「Create parameter annotation 」 爲參數添加註解, 其中 輸入的UnityEngine.Transform 會有代碼提示。
---@param trans UnityEngine.Transform
local function test(trans)
end
這樣在函數內訪問 trans 變量就爽了!!!
有什麼問題加入他們的羣 討論吧!
=1=============================================================
其餘lua工具推薦 http://blog.csdn.net/visualcatsharp/article/details/37653107
=2============================================================
設置sources時候,要從最上層的LuaScripts一直往下把子文件所有設置了,才能夠調試成功
而且剛開始的項目層我選的是Assets