1. 程式人生 > >Unity3D開發小貼士(三)愉快的使用Lua開發

Unity3D開發小貼士(三)愉快的使用Lua開發

Unity3D不支援指令碼動態更新,所以我們需要使用Lua來完成這個工作。本文介紹如何使用ToLua和CodeIDE來開發可用於U3D的Lua指令碼。

首先我們需要下載ToLua

新建一個專案,將tolua-master目錄下的Assets複製到專案中去。

在Unity編輯器裡新增一個物件,物件上新增LuaClient指令碼,然後我們可以執行Lua/Main.lua中的指令碼。

如何編寫lua指令碼可能會是一個大問題,因為我之前做過Cocos2d-x的開發,所以覺得Code IDE還不錯。

(Code IDE吃棗藥丸,所以備份一個百度網盤,包括Mac64、Win32和Win64。望天!希望百度網盤千秋萬代永久免費)

開啟Code IDE的偏好設定,設定cocos2d-x的目錄和模擬器的目錄。


然後新建一個Cocos Lua Project


在Location設定到Unity專案的Assets目錄下。

你需要先將Main.lua移動到其他地方,然後把Lua目錄刪掉,當專案建立之後,再把Main.lua移動回來。

新建的工程會有很多cocos2d-x的東西,大部分我們都不需要,只有src/cocos/cocos2d目錄下的bitExtend和functions是通用並且有用的,其他的都可以刪掉,包括cocos2dx 3.x的Library。最後的工程瀏覽器應該是這樣的:


開啟工程屬性,新增ToLua的引用:


只需要在Main.lua裡面新增:

require("functions.functions")
require("functions.bitExtend")
require("tolua")

便可以使用functions和bitExtend以及tolua裡的方法。

示例:

dump(bit._d2b(3))
dump(Vector2.New(2,1))

如果你需要在Lua裡面呼叫C#的類,需要在Editor/CustomSetting.cs裡新增這種型別,然後在編輯器的選單欄裡點選Lua->Gen LuaWrap + Binder。

例如:

print(UnityEngine.Application.dataPath)