ILRuntime CLR 绑定原理分析

使用Unity ILRuntime编辑器工具所带功能进行CLR绑定后,跨域调用方法不再是反射方式,而是一种类是劫持方式进行,运行效率高于反射很多倍, 并且没有GC开销

原理解释:

例如,调用一个gameobject的SetActive方法。ILRuntime 内部会在一个CLRBinding表里进行查找,在这个表里面如果有GameObject.SetActive 那么调用此方法,如果没有则按反射调用。

进行new的时候,会去找重定向的方法,在CLRRedirection表里面。new 的重定向方法是activator.CreateInstance(type). ILRuntime 会劫持这个方法,使得在热更工程中传入的type和非热更工程中的type类型分别正确(热更工程中的是iltype,而非system.type)

猜你喜欢

转载自blog.csdn.net/weixin_38027841/article/details/117779910
CLR