加载AB包程序集,反射获取并实例化类调用方法

这篇具有很好参考价值的文章主要介绍了加载AB包程序集,反射获取并实例化类调用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 加载AB包文件,加载bytes程序集资源,通过反射获取类,实例化添加组件,调用方法文章来源地址https://www.toymoban.com/news/detail-648867.html

public class LoadAB : MonoBehaviour
{
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.H))
        {
            Load();
        }
    }
    void Load()
    {
        string classname = "ID506_BrakeFiveStep";
        string RealClassName = "DriveEventAbstractParentClassNameSpace." + classname + "_AB";
        string Dll_bytesName = classname + ".bytes";

        string path = "D:/Desktop/newcode/AssetBundles/DriveEventAssests/id506_brakefivestep";
        AssetBundle ab = AssetBundle.LoadFromFile(path);
        ab.LoadAsset(Dll_bytesName);

        //将.bytes文件转化为TextAsset
        TextAsset VS_Dll_To_bytes = ab.LoadAsset(Dll_bytesName, typeof(TextAsset)) as TextAsset;
        //转化为byte数组
        byte[] by = VS_Dll_To_bytes.bytes;
        //通过反射获取想要的类
        Assembly am = Assembly.Load(by);
        Type type = am.GetType(RealClassName);

        //实例化这个类
        object obj;
        if (GetComponent(type) == null)
        {
            gameObject.AddComponent(type);
        }
        obj = GetComponent(type);

        //直接调用
        string methodName = "InitAB";
        System.Object[] paras = new System.Object[] { "{'EventID':'506','Color':'yellow','OffsetMetre':'0'}" };
        MethodInfo method = type.GetMethod(methodName);
        method.Invoke(obj, paras);
    }
}

到了这里,关于加载AB包程序集,反射获取并实例化类调用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java中的反射(通过反射获取类的结构、invoke方法、获取注解)

    创建运行时类的对象是反射机制应用最多的地方。创建运行时类的对象有两种方式: 方式1:直接调用Class对象的newInstance()方法 要求: 1)类必须有一个无参数的构造器。 2)类的构造器的访问权限需要足够。 方式一的步骤 : 1)获取该类型的Class对象 2)调用Class对象的 new

    2024年02月04日
    浏览(52)
  • mockito+junit 单元测试 测试私有方法利用反射去调用提升覆盖率 反射调用时传入参数为 null

    今天公司安排我写单元测试 因为要通过三级认证 公司要求是覆盖率必须达到100% 而在写单元测试的时候 对于是否要测试私有方法一直是一个争议 公司规范 对私有方法也进行测试 代码如下: JudgeUtils 是公司封装的一个工具类 让我们看看 isNull 方法的内部 代码如下: 我现在需

    2024年02月11日
    浏览(48)
  • C# 通过反射调用对象上的方法

    2024年02月13日
    浏览(48)
  • 【Golang | reflect】利用反射实现方法的调用

    go语言中,如果某个数据类型实现了一系列的方法,如何批量去执行呢,这时候就可以利用反射里的 func (v Value) Call(in []Value) []Value 方法。 Call 方法实际使用时主要有以下两种调用方式: 注: 1、这里说明下,为什么使用 Func 调用 Call 时第一个入参是对应receiver本身 method.Func

    2024年02月07日
    浏览(56)
  • 使用反射调用类的私有内部类的私有方法

    在进行单元测试时,我们往往需要直接访问某个类的内部类或者某个类的私有方法,此时正常的调用就无能为力了,因此我们可以使用反射进行调用。 类 实现方法 获取类的Class对象 Class class = Class.forName(\\\"类名\\\") 或 Class class = 类实例.getClass() new一个实例 Object object = class.newIn

    2024年02月07日
    浏览(42)
  • Jmeter调用Oracle、pg、MySql 储存过程,实例,获取返回值

    JDBC Request: 1、重要参数说明: Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致 Query:填写的sql语句未尾不要加“;” Parameter valus:参数值 Parameter types:参数类型,可参考:Javadoc for java.sql.Types Variable names:保存sql语句返回结果

    2024年02月08日
    浏览(53)
  • 微信小程序之加载更多(分页加载)实例 —— 微信小程序实战系列(2)

    let that = this; let searchKeyword = that.data.searchKeyword,//输入框字符串作为参数 searchPageNum = that.data.searchPageNum,//把第几次加载次数作为参数 callbackcount =that.data.callbackcount; //返回数据的个数 //访问网络 util.getSearchMusic(searchKeyword, searchPageNum,callbackcount, function(data){ console.log(data) //判断是否

    2024年04月11日
    浏览(39)
  • dedecms新增字段调用实例方法

    大家在织梦使用{dede:channel }标签的时候,难免会遇到因为现在字段不能满足业务需求,需要新增的情况(具体怎么新增字段自行百度)。 但是新增的字段通过DEDE的标签是不能直接使用的,现在博主介绍下怎么添加字段后如何调用: 1、找到 /include/taglib/channel.lib.php 文件; 2、

    2024年02月03日
    浏览(50)
  • 浅谈PHP框架中类成员方法的类类型形参是怎么利用ReflectionClass反射类自动实例化的(应该是全网首发)

    1. 或许是全网首发,我翻过很多文章,从未有一个博主讲过这个东西,很多博主只讲了IOC、DI和反射机制的常见用法,因类类型形参反射的巧妙用法有相当高的难度和学习盲区,所以从未有人讲过类类型的形参它怎么就被自动实例化的。 2. 在Laravel框架,或者是其它框架中,类

    2024年02月06日
    浏览(48)
  • Unity-WebGL加载AB包

    上文写到PC、IOS、Android项目加载ab包资源,地址: 打包的步骤和上文中的操作相同,唯一的不同就是在Build页面里Build Target选择WebGL。   当项目使用内置渲染管线时,所有材质的Shader为Standard。 1、当项目为URP时,首先需要在Package Manager里导入Universal RP,如图 2、Create—Renderi

    2024年03月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包