菜单HybridCLR/Build/Win64 ,运行完成后,会在Release_Win64目录下生成程序 运行Release_Win64/HybridCLRTrial.exe,会看到打出 hello, HybridCLR.prefab 注意,如果你使用最新版本的vs,有可能遇到 遇到xxxx\il2cpp\libil2cpp\utils\Il2CppHashMap.h(71): error C2039: 'hash_compare': is not a member of 's...
代码中加载补充元数据dll的方式见以下示例代码,你也可以参考hybridclr_trial。 执行HybridCLR.RuntimeApi.LoadMetadataForAOTAssembly时会在内部将传入的dllBytes复制一份,调用完该接口后请不要保存dllBytes,否则会造成内存浪费。 提示 如果RuntimeApi.LoadMetadataForAOTAssembly花费太多时间,造成卡顿,你可以在其他线程异步...
接下来我们先通过示例项目掌握HybridCLR热更新的总体原理和流程,当你真正的理解它以后,要用到自己的项目里面时就可以把示例项目里的一些多余的东西去掉,再从头搭建 在官方文档中点击快速开始栏中的hybridclr_trial示例项目链接,前往GitHub复制示例项目源码 想要在GitHub里复制源码,必须要安装两个软件:Git和TortoiseGit Git...
关于HybridCLR的简介和安装我这里就不再介绍了,因为都可以找到。 这里只介绍一下简单的使用,我这里是在hybridclr_trial-main 示例基础上的使用扩展。 快速开始——(以下只是个人研究的心得,如有不对或者遗漏,欢迎评论) 首先热更新也是借助AssetBundle的功能,将脚本,预制体等都当作一个资源打包在AB里面,等待使用。这里...
Release-Win64\HybridCLRTrial_Data\StreamingAssets目录: 这就完成了热更新文件的替换,重新运行程序就可以看到刚刚修改的日志输出代码已经生效: 3-2、常见问题 总结一下遇到的问题吧。 3-2-1、目前选择的脚本后端(IL2CPP)没有安装。 解决方法:安装Unity 2020.3.33f1 记得安装WIndows Build Support (II2CPP)模块。
如果将热更新脚本挂载到Resources等随主包的资源上,会发生scripting missing的错误!但如果先打成assetbundle包,再放到Resources下,运行时加载该随包assetbundle则没有问题。 由于整个过程涉及到打ab包,比较冗长,这儿不详细说明。请直接体验 hybridclr_trial 项目(github或gitee)。
hybridclr_trial仓库为示例仓库 Unity IL2CPP 技术原理与AOT 在此之前,我们先了解下Unity的发展: 阶段一: C#的出现; 微软开发出一套符合自己的标准出来,于是在Windows系列的平台上把.net的标准开发出来,就是说我们开发者只需要开发出来符合.net 字节码的标准代码, 我们就可以让我们的代码在.net上运行起来; ...
运行菜单 HybridCLR/Generate/All 一键执行必要的生成操作 运行菜单 Build/BuildAssetsAndCopyToStreamingAssets 复制热更新资源及dll到StreamingAssets目录 打包 Win平台 已经提供提供了快捷的菜单命令: 菜单HybridCLR/Build/Win64 ,运行完成后,会在Release_Win64目录下生成程序 运行Release_Win64/HybridCLRTrial.exe,会看到...
运行Release_Win64/HybridCLRTrial.exe,会看到打出 hello, HybridCLR.prefab 更新ab包 修改HotFix项目的PrintHello代码,比如改成打印 "hello,world"。 运行菜单 HybridCLR/BuildBundles/Win64,重新生成ab 将StreamingAssets下的ab包复制到Release_Win64\HybridCLRTrial_Data\StreamingAssets。 再将运行,屏幕上会打印"hel...
运行Release_Win64/HybridCLRTrial.exe,会看到打出 hello, HybridCLR.prefab 注意,如果你使用最新版本的vs,有可能遇到 遇到 xxxx\il2cpp\libil2cpp\utils\Il2CppHashMap.h(71): error C2039: 'hash_compare': is not a member of 'stdext' 编译错误。这是.net 7发布后最新版本vs改动打破了一些向后兼容性...