学习Lua脚本调用C#中的枚举和数组
扫描二维码随身看资讯
使用手机 二维码应用 扫描右侧二维码,您可以
1. 在手机上细细品读~
2. 分享给您的微信好友或朋友圈~
在本文中,我们将学习如何在Lua脚本中调用C#中的枚举和数组。我们将深入探讨如何在Lua中访问C#中的枚举类型和数组,以及如何在C#脚本中新增内容,并通过运行结果展示实际效果。
接下来,我们将详细介绍Lua脚本调用C#中的枚举类型。
[8]Lua脚本调用C#中的枚举学习
--调用枚举类型
print("----------------------toLua中调用C#中枚举类型-------------------------")
PrimitiveType = UnityEngine.PrimitiveType
local cubeObj = GameObject.CreatePrimitive(PrimitiveType.Cube)
--使用自定义枚举
local tc = TestScripts.OUTSTANDING_STUDENTS.TonyChang
print("优秀学生代表----" .. tostring(tc) .. "排名" .. tc:ToInt())
local fl = TestScripts.OUTSTANDING_STUDENTS.IntToEnum(2)
print("数值转枚举" .. tostring(fl))
print("枚举值一样二者可以判等吗?")
local us = TestScripts.OUTSTANDING_STUDENTS.UrusWong
local us2 = TestScripts.OUTSTANDING_STUDENTS.UrusWong
if us == us2 then
print("一样")
else
print("不一样")
end
接下来,我们将介绍C#脚本中新增的枚举类型。
#region 枚举
//在TestScripts命名空间下新增枚举类型
public enum OUTSTANDING_STUDENTS
{
TonyChang,
UrusWong,
FrankLee,
JackChow
}
#endregion
下面是运行结果的截图:
接下来,我们将学习Lua脚本中调用C#中的数组。
[9]Lua脚本中调用C#中的数组
接下来,我们将介绍C#脚本中新增的数组内容:
下面是Lua脚本中访问数组的示例:
因为Array数组是在前文中的测试脚本TestScripts.Student类中声明创建的,所以开头先实例化Student对象。
使用Lua访问C#中数组时,可以通过层级结构获取到对应类的数组索引,按照C#中array数据结构类型来访问。注意索引最大值,可以通过迭代器遍历访问,也可以将其转换为lua中的table,再遍历访问。最后我们尝试再Lua中使用C#的array数组结构来创建使用数组。
local student = TestScripts.Student("tony")
print("----------------------访问C#中数组--------------------")
print("array的长度" .. student.array.Length)
print("array[0]=".. tostring(student.array[0]))
print("5 在array中的索引是" .. tostring(student.array:IndexOf(5)))
--按照C#中array数组长度进行遍历访问
--所以长度要减一 才为最后一个索引
for i = 1, student.array.Length - 1 do
print("array[" .. i .. "] = " .. student.array[i])
end
--使用迭代器遍历
local iter = student.array:GetEnumerator()
while iter:MoveNext() do
print("iter:" .. iter.Current)
end
--转成table再遍历
local aTable = student.array:ToTable()
for j=1,#aTable do
print("aTable: " .. tostring(aTable[j]))
end
--在lua中使用C#中的Array创建数组
--奇葩
local createArray = System.Array.CreateInstance(typeof(System.Int32), 10)
print("createArray.Length = " .. createArray.Length)
local createArray = System.Array.CreateInstance(typeof(System.Int32), 10)
createArray[0] = 9999
print("createArray[0] = " .. createArray[0])
print("createArray" .. createArray)
下面是运行结果的截图:
需要注意的是,本次在CustomSetting中新增的类型,之后需要重新生成wrap文件,才能在lua中正常使用。总之,使用toLua获取C#脚本中内容,则需要将脚本添加自定文件,并生成wrap文件。
- 1
加查之花 正版
- 2
爪女孩 最新版
- 3
企鹅岛 官方正版中文版
- 4
捕鱼大世界 无限金币版
- 5
球球英雄 手游
- 6
情商天花板 2024最新版
- 7
内蒙打大a真人版
- 8
烦人的村民 手机版
- 9
跳跃之王手游
- 10
蛋仔派对 国服版本