河北网站建设就业考试,广州免费景点,把自己做的网站进行app封包,50强网站开发语言工具源码#xff1a;https://github.com/handzlikchris/FastScriptReload 介绍
用于运行时修改C#后能快速重新编译C#并生效#xff0c;避免每次改C##xff0c;unity全部代码重新编译#xff0c;耗时旧且需要重启游戏。
使用 需要手动调整AssetPipeline自动刷新模式…工具源码https://github.com/handzlikchris/FastScriptReload 介绍
用于运行时修改C#后能快速重新编译C#并生效避免每次改C#unity全部代码重新编译耗时旧且需要重启游戏。
使用 需要手动调整AssetPipeline自动刷新模式即改成运行时不要自动刷新资源同时意味着 运行时改shader代码不会及时生效如果主要调试shader还是要开运行时刷新。 运行时window下改工程资源unity不会刷新比如外部新增一张图unity不会刷新显示。 原理 FastScriptReloadManager中EditorApplication.update每帧检查所有配置的*.cs文件 System.IO.FileSystemWatcher.Changed 提供文件变化时事件 对变化的C#文件重新创建C#文件 对原来C#文件语法分析对新增变量和方法另外封装对修改的变量不用另外处理。类似将新增的变量存到他一个临时字典里访问就到他的字典里取。生成.SourceCodeCombined.cs文件 生成.rsp文件包含编译需要的一些信息。 使用.net命令和csc.dll工具编译C#代码为DLL文件。 安卓环境的话这里会把dll转成字节流发给手机手机收到后下面流程一致。 使用System.Reflection.Assembly.LoadFrom加载DLL文件。 AssemblyChangesLoader.DynamicallyUpdateMethodsForCreatedAssembly 对所有已存在的C#方法重定向到新的C#方法Memory.DetourMethod即把旧的函数指针指向新的函数。 安卓环境测试
原理和上面一致只是多了层网络收发即把DLL的字节流发给手机手机收到消息后加载程序集即可。