目录
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))