哈,没想到吧,本专栏还有再次更新的一天。
网易游戏雷火事业群:浅谈倩女手游中的资源更新zhuanlan.zhihu.com![776961748caaf296b4282feb40dd8475.png](https://i-blog.csdnimg.cn/blog_migrate/ab8bfc45a3a63036dc3d03327ba6f01a.jpeg)
其实是看到这个之后,决定把热更新也整合进去。既然要整合热更新,那现在的框架不得不重新写一次,因为代码最终要编译成Dll的。
这次重写的话,我做出了如下选择:
脚本语言:xLua
Unity版本:Unity 2019.3.5 (VS2019)
文件夹设置:
![a5a6f9b190c7849cb12b640d2d21a38f.png](https://i-blog.csdnimg.cn/blog_migrate/62e37c61dc901ed2b5b0dec61b3a37ab.png)
游戏工程的建立
没啥好说的,中规中矩建一个3D工程。随意新建一个脚本,用VS打开,在“解决方案管理器”视图找到Unity相关的引用,其属性为:
![984d198afa45d17e2f49774cd267e343.png](https://i-blog.csdnimg.cn/blog_migrate/d1c6903a4afee200e03a875e85e7aac5.png)
把路径里用到的东西打包复制到Dll工程的3rd目录下,供Dll工程引用。然后再找到pdb2mdb.exe和mono.exe:
![e01a402194c0e3de9d9bea03fa6968fa.png](https://i-blog.csdnimg.cn/blog_migrate/275ddef419d35f55c21cc97c81d16055.png)
![911f8c6032802799d8a543252c439547.png](https://i-blog.csdnimg.cn/blog_migrate/1ab8b91fd5894048748958f143f188d5.png)
如果电脑里有多个Unity版本,则可能会有多个该程序,选择对应版本的即可,等下要用的是路径,pdb2mdb.exe是DLL的调试符号转换器,不生成mdb就没法调试DLL中的代码。
类库工程建立
依旧是中规中矩创建一个类库的工程。先添加刚才准备好的Unity相关程序集引用,然后打开项目属性,设置生成后事件:
"C:Program FilesUnityHubEditor2019.3.5f1EditorDataMonoBleedingEdgebinmono.exe" "C:Program FilesUnityHubEditor2019.3.5f1EditorDataMonoBleedingEdgelibmono4.5pdb2mdb.exe" $(TargetPath)
copy $(TargetPath) $(ProjectDir)....GameGameFrameAssetsDll$(TargetFileName)
copy $(TargetPath).mdb $(ProjectDir)....GameGameFrameAssetsDll$(TargetFileName).mdb
此处就使用了mono和pdb2mdb的路径,生成之后复制到游戏工程中。这里随便写了一个测试类,在游戏工程中可见,Dll中已经有这个类了。
![1a16d206d6038c125e91b7165bda96a8.png](https://i-blog.csdnimg.cn/blog_migrate/2f5b96535c324ff86541d75f9b5d4a72.png)
打上断点,挂上调试。然后运行游戏工程,好的,成功断住: