看官網(wǎng)的撕逼文章 http://ulua.org/index.html
1,下載:SimpleFramework,并解壓
2,在Unity3D中打開(kāi)SimpleFramework文件夾,載入工程中,菜單中可以看到有Lua,打開(kāi)Welcome Screen
第一步是清空,彈出框架后,就點(diǎn)擊Clear,
第二步是Gen Lua Wrap Files,彈出,,
然后找到LuaWrap文件夾,在菜單中,先清空Clear,然后生成Gen Lua Wrap Files ,生成后,生成的類就會(huì)注冊(cè)到Lua的環(huán)境中。
為[AssetBundle] Build的
Build后,會(huì)生成一個(gè)StreamingAssets文件夾,這些都是要更新的
運(yùn)行examples中的案例后,C盤(pán)里面這個(gè)simpleframework和StreamingAssets文件夾里面的文件都是相似的
3,examples案例解析
,在c#里執(zhí)行Lua代碼,,,new Lua表示Lua解析器, DoString 表示執(zhí)行Lua代碼
反射調(diào)用
非反射調(diào)用
在Unity中訪問(wèn)Lua中的變量
執(zhí)行Lua腳本文件,調(diào)用Lua方法,在Lua中使用協(xié)程
4,框架啟動(dòng)第一步GlobalGenerator,生成appview和gamemanager
5,GameManager中對(duì)資源的更新處理
6,GameManager處理Lua的View的加載和初始化
安裝并打開(kāi)Lua Studio
6,Lua代碼中的結(jié)構(gòu)和調(diào)用順序和對(duì)資源的處理和對(duì)游戲邏輯的控制
7,創(chuàng)建開(kāi)發(fā)UI界面
8,打包資源,創(chuàng)建GameManager的lua腳本
創(chuàng)建好的UI都做成預(yù)制件并保存,選擇所有的UI圖片成一個(gè)包,
用到的字體也打成一個(gè)包
選擇如下圖的下拉菜單
Build完成后,觀察如下圖文件夾有沒(méi)有增加什么東西。
接來(lái)下要通過(guò)Lua代碼進(jìn)行加載
打開(kāi)GameManager.cs代碼,其中有需要改動(dòng)的地方。
找到Lua代碼中的GameManager.lua,復(fù)制并重新寫(xiě)代碼
右鍵新建2個(gè)文件放在View下,處理場(chǎng)景中2個(gè)預(yù)制件的
9,開(kāi)發(fā)View視圖層下的Lua代碼,來(lái)獲取UI中的組件
編寫(xiě)Lua中的ButtonPanellua代碼
場(chǎng)景中SettingsPanel添加設(shè)置界面從小到大的動(dòng)畫(huà)
再添加一個(gè)面板隱藏的動(dòng)畫(huà)
繼續(xù),反向設(shè)置,由大變小
做成動(dòng)畫(huà)狀態(tài)機(jī)
弄好上面后,編寫(xiě)Lua中的SettingsPanellua代碼
10,開(kāi)發(fā)Controller控制層下的Lua代碼,控制UI控件的產(chǎn)生和事件監(jiān)聽(tīng)
首先在Lua中的Controller右鍵建SettingsCtrl.lua文件
接著,在Lua中的Controller右鍵建ButtomCtrl.lua文件
然后,之前的GameManager.lua再更改如下
寫(xiě)完代碼后,資源需要Build一下
11,發(fā)布到手機(jī)上,啟動(dòng)Server,進(jìn)行Lua代碼的更新
發(fā)布前,在菜單中,先清空Clear,然后生成Gen Lua Wrap Files ,生成后,
發(fā)布到安卓上
C#代碼中AppConst.cs要修改
接下來(lái)把服務(wù)器端集中起來(lái),先打開(kāi)工程所在的目錄
打開(kāi)Server.sln
進(jìn)一部找到HttpServer.cs并打開(kāi)
把代碼改為連接本機(jī)
接下來(lái)返回到Server里面去啟動(dòng),找到bin文件夾
找到SuperSocketSocketServer.exe文件
右鍵以管理員身份運(yùn)行
彈出界面
服務(wù)器端運(yùn)行成功后,可以發(fā)布了
編譯出錯(cuò),框架要修改一下。把#endif挪動(dòng)一下位置
接下來(lái)做更新,看安卓端能不能同步過(guò)來(lái)
打開(kāi)Luastudio,打開(kāi)里面的解決方案
設(shè)置按鈕
改完代碼后,在Unity里面更新一下,熱更新就完成了