XLua官方API 02 Lua API

这篇博客详细介绍了如何在Lua中使用C#对象,包括创建实例、访问静态成员和枚举值。同时,讲解了typeof函数在调用C#方法时的作用,以及无符号64位数值的支持,如转换、除法、比较和取模。此外,还提到了xlua.structclone用于结构体克隆,以及xlua.private_accessible使私有成员可用的功能。示例代码展示了如何操作Unity的Vector3结构体。
摘要由CSDN通过智能技术生成

目录

CS对象

typeof函数

无符号64位支持

xlua.structclone

xlua.private_accessible(class)      


 

CS对象

CS.namespace.class(...)

描述:调用一个C#类型的构造函数并返回实例对象,例如:

local v1=CS.UnityEngine.Vector3(1,1,1)

CS.namespace.class.field

描述:访问一个C#静态成员,例如:

Print(CS.UnityEngine.Vector3.one)

CS.namespace.enum.field

描述:访问一个枚举值

 

typeof函数

类似C#里头的typeof关键字,返回一个Type对象,比如GameObject.AddComponent其中一个重载需要一个Type参数,这时可以这么用

newGameObj:AddComponent(typeof(CS.UnityEngine.ParticleSystem))

 

无符号64位支持

uint64.tostring

描述:无符号数转字符串。

uint64.divide

描述:无符号数除法。

uint64.compare

描述:无符号比较,相对返回0,大于返回正数,小于返回负数。

uint64.remainder

描述:无符号数取模。

uint64.parse

描述:字符串转无符号数。

 

xlua.structclone

描述:克隆一个c#结构体

 

xlua.private_accessible(class)      

描述:让一个类的私有字段,属性,方法等可用

cast函数

指明以特定的接口访问对象,这在实现类无法访问的时候(比如internal修饰)很有用,这时可以这么来(假设下面的calc对象实现了C#的PerformentTest.ICalc接口):

cast(calc, typeof(CS.PerformentTest.ICalc))

 

然后就木有其它API了

访问csharp对象和访问一个table一样,调用函数跟调用lua函数一样,也可以通过操作符访问c#的操作符,下面是一个例子:

local v1=CS.UnityEngine.Vector3(1,1,1)

local v2=CS.UnityEngine.Vector3(1,1,1)

v1.x = 100

v2.y = 100

print(v1, v2)

local v3 = v1 + v2

print(v1.x, v2.x)

print(CS.UnityEngine.Vector3.one)

print(CS.UnityEngine.Vector3.Distance(v1, v2))

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jack Yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值