Unity热更新 ILRuntime 从零开始 HelloWorld(二)

自从我凌晨两点放下喝醉的小姐姐回家写博客之后,小姐姐对我愈发的崇拜了👻👻,约我今晚一块学习ILRuntime(带好身份证🤩),我这一想必须要未雨绸缪,安排!!!
请添加图片描述
选了一个全市最好的网吧,斥巨资通宵5元💰💰请小姐姐一块学习
请添加图片描述
一起记录下学习内容。
这是这一系列文章的总目录链接


🎁处理报错

在上一篇博客中,我们导入了官方的demo,也解决了报错无法运行的问题上一篇链接:热更新 ILRuntime 从零开始 介绍及安装 (一)
这次我们开始讲解下官方的第一个案例场景,HelloWorld
在这里插入图片描述
切换到场景后,直接运行,发现报错了
在这里插入图片描述
那改如何处理呢?

🔆🔆个人感觉,热更的其实就是你的.dll文件,之所以会报错,是因为你根本还没有编译对应的.dll文件,可以按照下面的流程来解决报错。🔆🔆

🌸1.设置脚本编辑器为VS

把unity的默认编辑器设置为VS,方便操作 Edit——Preferences
在这里插入图片描述

🌸2.找到热更工程,用VS打开

在这里插入图片描述
这是对应的工程路径,文件夹后面加上 波浪线,在Unity的Project面板中是不会显示的,以后的小秘密文件夹都可以这么干🤪🤪
用VS打开工程后,我们就可以进行下一步了。

🌸3.创建StreamingAssets文件夹,生成.dll 文件

在Project面板中创建StreamingAssets文件夹,用于暂时存放编译好的.dll文件。
用VS打开后,右键 HotFix_Project 生成
在这里插入图片描述
可以看到成功生成了.dll文件
在这里插入图片描述

🌸4.生成.dll 文件不成功

如果在生成的时候报错了,如下图:
在这里插入图片描述
我们可以更改下api的等级

在这里插入图片描述
亲测,就可以正常生成了。

现在点击运行,就不会报错了,还会有相应的 打印信息
在这里插入图片描述
那到底是怎么运行的呢?请继续往下看。


🎁脚本逻辑

🌲1.打开HelloWorld脚本

先找到 01_HelloWorld 场景中的 GameObject 上挂载的脚本 HelloWorld ,打开HelloWorld

🌲2.引入命名空间

脚本里有很多的中文注释,讲解的很详细,首先要 引入命名空间

using System.IO;
using ILRuntime.Runtime.Enviorment;

创建应用程序域,并且最好作为单例

 AppDomain appdomain;

🌲3.开启协程:

通过LoadAssembly加载.dll文件,InitializeILRuntime();初始化ILRuntime,接下来就可以直接调用.dll文件里面的方法了,

 void OnHotFixLoaded()
    {
        //HelloWorld,第一次方法调用
        appdomain.Invoke("HotFix_Project.InstanceClass", "StaticFunTest", null, null);

    }

🌲4.修改代码

用VS打开HotFix_Project工程,找到对应的InstanceClass类,找到我们刚才在unity调用的那个方法StaticFunTest
看下方法里面的执行内容:

public static void StaticFunTest()
        {
            UnityEngine.Debug.Log("!!! InstanceClass.StaticFunTest()");
        }

这就是我们运行unity,debug出来的内容了。
如果我们想debug出Hello World!,先要修改代码如下,然后HotFix_Project重新生成.dll文件。

 public static void StaticFunTest()
        {
            UnityEngine.Debug.Log("!!! InstanceClass.StaticFunTest()");
            UnityEngine.Debug.Log("Hello  World!");
        }

最后运行Unity 看下效果
在这里插入图片描述
😁到这,我们就成功的通过ILRuntime,打印出了"Hello World!"😁
🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲


🎁调试插件

🏳️‍🌈一、插件下载

官方插件需要到GitHub上下载,这是地址
如果GitHub上下载不了,我也给大家下载好了,可以直接用,这是链接
ILRuntimeDebugger_VS15_17_19

🏳️‍🌈二、插件安装

安装插件一定要注意:关闭VS

注意VS版本,适用于VS2015(Update3以上)或VS2017、VS2019
在这里插入图片描述

🏳️‍🌈三、开始调试

1.更改脚本

为了方便演示调试,我们来稍微改一下代码:当按下F1的时候就打印信息
打开HelloWorld脚本,在update里面添加以下脚本:

 void Update()
    {
        if (Input.GetKeyDown(KeyCode.F1))
        {
            OnHotFixLoaded();
        }
    }

想要调试,必须要在dll和pdb都加载完毕,执行appdomain.DebugService.StartDebugService(56000);
所以我们加一行代码,appdomain.DebugService.StartDebugService(56000);
在这里插入图片描述

2.打断点,运行unity

用VS打开HotFix_Project工程,打上断点
在这里插入图片描述
运行unity。

3.打开调试插件窗口

在HotFix_Project工程里面打开调试插件的窗口 Debug->Attach to ILRuntime
在这里插入图片描述
在弹出来的窗口中填入被调试的主机的IP地址以及调试服务器的端口
在这里插入图片描述
点击attach,就开始调试了。

4.开始调试

在unity内按下F1,就可以跟正常的VS调试一样用了
在这里插入图片描述


🙈🙈我们在网吧折腾了一宿,终于完事了,傻白甜的小姐姐都学会,你呢?🙈🙈

总结

欢迎大佬多多来给萌新指正,欢迎大家来共同探讨。
如果各位看官觉得文章有点点帮助,跪求各位给点个“一键三连”,谢啦~

声明:本博文章若非特殊注明皆为原创原文链接
https://blog.csdn.net/Wrinkle2017/article/details/120085835
————————————————————————————————

💢💢版权声明

版权声明:本博客为非营利性个人原创
所刊登的所有作品的著作权均为本人所拥有
本人保留所有法定权利,违者必究!
对于需要复制、转载、链接和传播博客文章或内容的
请及时和本博主进行联系
对于经本博主明确授权和许可使用文章及内容的
使用时请注明文章或内容出处并注明网址
转载请附上原文出处链接及本声明

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值