,
数据类型Lua 是动态类型语言,变量无需类型定义,只需要为变量赋值。(语言自动识别变量类型)
变量变量的默认值均为 nil
循环循环和流程还是要用Lua自带的,因为“不能连线”。。下面是示例
--BeginPlay函数
function BP_CharacterBase_C:ReceiveBeginPlay()
local Weapon = self:SpawnWeapon()
if Weapon then
Weapon:K2_AttachToComponent(self.WeaponPoint, nil, UE.EAttachmentRule.SnapToTarget, UE.EAttachmentRule.SnapToTarget, UE.EAttachmentRule.SnapToTarget)
self.Weapon = Weapon
end
end
for循环
Lua 编程语言中 for语句有两大类:
数值for循环--var 从 exp1 变化到 exp2,每次变化以 exp3 为步长递增 var,并执行一次 "执行体"。exp3 是可选的,如果不指定,默认为1。
--var = exp1, exp2, exp3
--do
--end
for i=10,1,-1
do
print(i)
end
泛型for循环
while循环
a=10
while( a < 20 )
do
print("a 的值为:", a)
a = a+1
end
..
dd
流程控制if(0)
--第一个大括号用关键字then表示
then
print("0 为 true")
--else。。。
else
print("a 大于 20" )
--最后一个大括号用end表示
end
b
b
函数函数一般不带local,函数都是在类外使用
返回值不在第一行,返回值在return关键字后
--local:本地函数,表示只在此类内可用!!
-- 方法都是在类外使用,所以方法一般不用local 标记
--返回值不在第一行,返回值在return关键字后
function Test(param1, param2)
--返回值在这里
return param1, param2
--函数没有大括号,以关键字end结尾!!!
end
字符串
--双引号括起来,Lua 变量无需定义,只需赋值。。。
local test = "Lua"
--字符串的链接
--print("www.runoob.".."com")
UnLua初步
访问UE变量
重写父类的虚函数// --self + Super + 原函数名
// --函数无参数,默认要传 self
function BP_Game_C:ReceiveBeginPlay()
--这一段代码是重写父类函数的逻辑
self.Super.ReceiveBeginPlay(self)
end
重写父类的普通函数
--self + Overridden + 原函数名
--函数无参数,默认要传 self
function BP_Game_C:ReceiveBeginPlay()
--这一步是执行原函数的逻辑,如果不需要执行,则可以不写。
self.Overridden.ReceiveBeginPlay(self)
end
调用类里的函数
--UE 的 namespace(UE的方法都存在了UE的命名空间内吗???)
--UE4. 前缀(可能是命名空间前缀)
--所在类的类名. 如 AActor
--函数名. 函数调用时的第一个参数,好像总是self。。。
UE4.UKismetSystemLibrary.PrintString(self,"HelloWorld")
调用父类里的函数
function Test_C:ReceiveBeginPlay()
--调用自定义方法
self.TestFunction()
end
--自定义方法
function Test_C:TestFunction()
UE4.UKismetSystemLibrary.PrintString(self,"dddddd")
end
Cast函数
--区别 原来的大括号 <> 包括里面的内容不存在
-- 函数的参数变为了 UE4. + 蓝图类的文件名_C
local Actor = UE.AActor.Cast(UE4.Test_C)
d
ddd
d
d
参考资料UE 热更新:基于 UnLua 的 Lua 编程指南 | 循迹研究室 (imzlp.com)
Unreal Frontend(虚幻前端) - 虚幻引擎 UnrealEngine v4 中文文档 - 文江博客 (wenjiangs.com)
UTA(User Acceptance Test 用户验收测试)
热更
打包的两种方式
第一种,无启动程序,直接在引擎检测出的设备上启动。每次启动都需要重新生成。
第二种,有安装程序。
UE 使用的是 C++ 这种编译型语言,在编译之后就成了二进制,只有通过玩家重新安装才能打到更新游戏的目的。但是对于游戏业务而言,对于需求调整和 bug 修复时间要求非常迫切,频繁地让玩家更新 App 是不能接受的,游戏项目一般使用 Lua 作为游戏业务的脚本语言,是为了把运行时不可变的 C++ 代码变成运行时可更新的 Lua 代码。
d
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)