一.
tempTable = {“c”,“h”,“l”}
otherTable = tempTable
把表tempTable赋值给otherTable tempTable里面的内容改变otherTable相对的内容也会跟着改变 因为这样子的赋值只是直接把tempTable的内存地址赋值给otherTable所有如果想要tempTable和otherTable相互不影响可以直接遍历赋值
tempTable = {"c","h","l"}
otherTable = {}
for k,v in pairs(tempTable) do
otherTable[k] = v
end
这样就不会有影响了
二.
lua调用C#动态加载资源直接调用会报错
需要在C#里面写一个加载资源的函数,函数一定要是静态的
不然还是会报错
三.
在一个表内部引用表内的另一个属性时没办法通过表名加属性名字直接引用
需要写一个返回值的函数
例如:
unity_gameObject = CS.UnityEngine.GameObject
tb ={
canvas = unity_gameObject.Find("Canvas"):GetComponent("RectTransform"),
--下面这三个方式都不行
-- screenSize = self .canvas.sizeDelta
-- screenSize = tb .canvas.sizeDelta
-- screenSize = canvas.sizeDelta
--可以这样写
screenSize = function (self)
return self.canvas.sizeDelta
end,
}
四.
lua里面没有new关键词 没有泛型T 没有<>
C#中
new CS.System.Text.StringBuilder("")
可以这样获取对象.GetComponent
lua 中
CS.System.Text.StringBuilder("")
可以这样获取对象:GetComponent(“MyDragMoveGroundAndAutoHoming”)
五.
lua中的elseif 是挨着的中间没有空格
C# 中的else if 中间是有空格的