Lua与C#的对比及AssetBundle资源打包的相关操作
Lua的语法基础
语言特性
书写格式
Lua的基本数据类型
Lua的运算符
Lua中的分支结构
Lua中的循环结构
Lua的函数结构
Lua的语法基础
Lua语言 作为一种编程语言,与C#有很大的差异。所以在使用之前,先通过对比的形式来明确Lua语言有哪些特点。

语言特性
首先,Lua语言和C#在语言特性上就有明显的不同:

语言类型 :Lua是解析型语言,这种代码再执行时会按照从上到下的顺序依次执行。而C#是编译型语言,编写完成后会生成特殊文件,然后按照调用关系去调用函数;
数据类型:Lua是弱类型语言,变量声明时无需指定数据类型。C#是强类型语言,定义数据必须指定数据类型 ;
书写格式
函数关系:Lua中的函数没有明确的归属类,独立存在。C#中的函数都属于类。
结尾不同:C#代码每行必须以; 结尾,Lua代码可以以;结尾,也可以没有结尾处的标点符号。
变量书写格式:C#声明变量时格式为 数据类型 标识符 = 值;Lua语言没有数据类型的指定。
Lua的基本数据类型
数值类型:Lua的数值类型,只有number,C#有int,float,double;
布尔类型:C#为bool,而Lua为boolean;
字符串类型:Lua的字符串和C#的字符串类型都为string,并且转义字符也基本相同。但Lua的字符串可以被" “或’ ‘或[[ ]]包裹,’ '和” “包含的字符串基本一样(因’ ’ 包含内容也为字符串,所以Lua没有char类型),而被[[ ]]包裹的字符串相当于在C#的字符串前加@,从而原格式输出。
Lua的运算符
相加:C#中加号表示2数或2字符串相加,但在Lua中用”…"(2个点)。
复合运算符:Lua中不支持复合运算符和++、- -2个特殊运算符。
形式不同的运算符:Lua中不等于为~=,C#为!=。Lua中的逻辑运算符and,or,not,C#中为&&,||,!。
Lua中的分支结构
Lua中的分支结构中没有{},使用then…end…代替。毎有一个if(布尔表达式)后面都会跟着一个then,在代码块写完后,换行接end结尾。而且,Lua中没有switch…case…语句。

Lua中的循环结构
Lua中的循环结构也没有{},使用do…end…代替。
Lua的for循环书写格式为for 初值表达式,终值表达式(包含等于),迭代表达式。
Lua中没有do…while()…循环语句,但有与其相似的循环语句,为repeat…until()…语句,与do…while()…不同,当条件表达式为真时,结束循环,否则一直循环。Lua中跳出循环关键字没有continue,只有break。
Lua的函数结构
C#中的函数返回值的地方有function代替,结尾处依旧使用end结尾。同样,在Lua的函数结构中没有{}存在。
因Lua为解析性语言,执行顺序从上到下。所以Lua中的函数调用必须写在函数的声明之后。而且函数是否有返回值,取决于是否包含return。
Lua中没有委托的概念,函数可以直接作为参数传递。