UE4中UnLua基础
UnLua基礎(chǔ)
- 簡介
- 快速開始
- 安裝
- UnLua初探
- 編寫HelloWorld.lua
- 創(chuàng)建藍(lán)圖并關(guān)聯(lián)
- Lua腳本放在Content/Script的子目錄下
- 關(guān)聯(lián)關(guān)卡藍(lán)圖和普通藍(lán)圖A
- 無需普通藍(lán)圖A,直接與關(guān)卡藍(lán)圖綁定
- 結(jié)束
- UnLua中的Initialize方法
- 描述
- 實(shí)例
- 創(chuàng)建Module.lua
- 關(guān)卡藍(lán)圖關(guān)聯(lián)InitializeTest.lua腳本
- UnLua中覆蓋藍(lán)圖事件
- 描述
- 注意點(diǎn)
- 創(chuàng)建Module.lua
- 關(guān)聯(lián)藍(lán)圖
- 運(yùn)行結(jié)果
簡介
UnLua是適用于UE的一個(gè)高度優(yōu)化的Lua腳本解決方案,由Tencent提供。詳細(xì)可以看github中readme文檔。
快速開始
安裝
UnLua初探
步驟:
或者:
編寫HelloWorld.lua
創(chuàng)建HelloWorld.lua腳本,并將其放置工程中的Content/Scrpit或者Content/Scrpit/subTreeDir目錄下。
HelloWorld.Lua腳本如下
-- 加載UnLua腳本, 必需* require "UnLua"-- 創(chuàng)建HelloWorld_C類 local HelloWorld_C = Class()-- 初始化時(shí)執(zhí)行function HelloWorld_C:Initialize()print("所有綁定到Lua的對象初始化時(shí)都會(huì)調(diào)用Initialize的實(shí)例方法")end return HelloWorld_C以下是UnLua創(chuàng)建出來的模板腳本:Template.lua,其各個(gè)函數(shù)后續(xù)會(huì)講到。
-- -- DESCRIPTION -- -- @COMPANY ** -- @AUTHOR ** -- @DATE ${date} ${time} --require "UnLua"local Template_C = Class()--function Template_C:Initialize(Initializer) --end--function Template_C:UserConstructionScript() --end--function Template_C:ReceiveBeginPlay() --end--function Template_C:ReceiveEndPlay() --end-- function Template_C:ReceiveTick(DeltaSeconds) -- end--function Template_C:ReceiveAnyDamage(Damage, DamageType, InstigatedBy, DamageCauser) --end--function Template_C:ReceiveActorBeginOverlap(OtherActor) --end--function Template_C:ReceiveActorEndOverlap(OtherActor) --endreturn Template_C創(chuàng)建藍(lán)圖并關(guān)聯(lián)
Lua腳本放在Content/Script的子目錄下
若HelloWorld.lua腳本放在Content/Script子目錄下。例如:Content/Script/subTreeDir目錄下,需要修改的是將藍(lán)圖中Reture Value內(nèi)容改為subTreeDir.HelloWorld。
關(guān)聯(lián)關(guān)卡藍(lán)圖和普通藍(lán)圖A
無需普通藍(lán)圖A,直接與關(guān)卡藍(lán)圖綁定
結(jié)束
打開Window -> Developer Tools -> Output log窗口,并且運(yùn)行游戲;即可在控制臺(tái)中看到所有綁定到Lua的對象初始化時(shí)都會(huì)調(diào)用Initialize的實(shí)例方法的輸出內(nèi)容。
UnLua中的Initialize方法
描述
所有綁定到Lua的對象初始化時(shí)都會(huì)調(diào)用Initialize的實(shí)例方法。
實(shí)例
創(chuàng)建Module.lua
InitializeTest/Module.lua腳本如下
require "UnLua"local Module = Class()-- 所有綁定到Lua的對象初始化時(shí)都會(huì)調(diào)用Initialize的實(shí)例方法 function Module:Initialize()local msg = [[InitializeTest exce Initialize function.]]print(msg) endreturn Module關(guān)卡藍(lán)圖關(guān)聯(lián)InitializeTest.lua腳本
UnLua中覆蓋藍(lán)圖事件
描述
覆蓋藍(lán)圖事件時(shí),只需要在返回的table中聲明Receive{EventName}。
注意點(diǎn)
關(guān)卡藍(lán)圖、Object藍(lán)圖、Actor藍(lán)圖、Character藍(lán)圖的Event是不一樣的。例如關(guān)卡沒有Actor的部分事件。
該規(guī)則不適用于CustomEvent。TODO
創(chuàng)建Module.lua
OverrideBlurprintEvents/Module.lua腳本如下
require "UnLua"local Module = Class()function Module:ReceiveBeginPlay()print("覆蓋藍(lán)圖的BeginPlay事件.") endfunction Module:ReceiveTick(DeltaSeconds)print("覆蓋藍(lán)圖的Tick事件.") endfunction Module:ReceiveEndPlay()print("覆蓋藍(lán)圖的EndPlay事件.") endfunction Module:ReceiveCustomEvent()print("覆蓋藍(lán)圖的CustomEvent事件.") endreturn Module關(guān)聯(lián)藍(lán)圖
運(yùn)行結(jié)果
總結(jié)
以上是生活随笔為你收集整理的UE4中UnLua基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UE4 + UnLua + VSCode
- 下一篇: UE 比较好的文章