ToLua反射

工作中有时候需要改C#,而不巧的是这个C#没有导Wrap,而外网又不能更新CS,这时候可以使用lua反射去解决。

require 'tolua.reflection'
tolua.loadassembly('Assembly-CSharp')
--上面两步加载反射环境,必须的

--创建实例
local AirTestManager = typeof('AirTestManager');
local instance = tolua.createinstance( AirTestManager );
--获取实例中的方法,并调用
local start = tolua.getmethod( AirTestManager , "Start" );
start:Call(instance);
--获取字段
local luaType = tolua.getfield( AirTestManager , "m_type" );
local type = luaType:Get(instance);
--设置字段
luaType:Set(instance , 10 );
--数字转枚举
local EnumTo = System.Enum.ToObject;
EnumTo(typeof("EHardControlType"), 1 << 12)

其他还有
tolua.findtype
tolua.getconstructor
tolua.gettypemethod
tolua.getproperty

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值