跳转到内容

数据类型及基本语法

Lua基础类型

参数名称参数类型举例元梦元梦扣叮中同样的类型
布尔booleantrue变量—布尔值
数值number10.2变量—数值
字符串string”示例字符串”变量—字符串
nilnil表示对象不存在
table{a=123,b=“甲乙丙”}
函数functionfunction() print(“函数”) end自定义—常规函数/取值函数

扩展类型

为了方便编程,在元件脚本中我们额外添加了一些变量类型。

参数名称参数类型举例元梦扣叮中同样的类型
三维向量Engine.VectorEngine.Vector(1,0,0)变量—向量
旋转Engine.RotaterEngine.Rotater(0,0,0)变量—向量
颜色Engine.ColorEngine.Color(0,0,0)十六进制代码
四元数Engine.QuatEngine.Quat(0,0,0)

定义变量

下面我们来使用Lua定义一个变量并日志打印它的类型,创建模板工程后,将下面的代码复制粘贴到GameClient.lua文件中的第一行:

local ab --与元梦扣叮不同,Lua创建变量时不一定要确定它的类型
local ab_type=type(ab) --获取ab的类型
print(ab_type) --日志打印:nil

如果一个变量没有类型或者没有值,那么它就是nil

  • 如果有使用过元梦扣叮,那么该操作类似于下面这样:
image1

变量赋值

接下来我们通过等于号(=)给定义的变量赋值,将下面代码复制粘贴到之前的Lua脚本下,变量需要先定义才能赋值,定义和赋值可以同时完成。

ab=10 --10赋值给ab,此时ab就是number类型
print(ab) --日志打印:10
----------------------------
local cd=12 --定义和赋值可以同时完成
print(cd) --日志打印:12
  • 如果有使用过元梦扣叮,那么操作类似于下面这样:
image2

变量类型转换:

在Lua中,同一个变量可以通过重新定义与赋值转换为其他数据类型。

local score = 100 --创建了一个名为score的变量。并且给它赋值100
print(type(score)) --日志打印:number 此时它的类型是number
local score = tostring(score) --使用tostring函数转换score的类型
print(score) --日志打印:100 score的值是"100"
print(type(score)) --日志打印:string 此时它的类型是string
  • 如果有使用过元梦扣叮,那么操作类似于下面这样:
image3

下面是一个例子:打印一个随机数字并作为信号发送至场景。

local new_number --创建一个nil变量
new_number=math.random(1, 10) --给new_number赋值1到10之间的随机数
System:FireSignEvent(new_number)
--作为信号发送到场景,这里也可以通过tostring()转化为字符串
print(new_number) --打印到VS Code输出栏
  • 如果有使用过元梦扣叮,那么操作类似于下面这样:
image4