unity python热更新_Unity C#热更新方案 ILRuntime学( 二 )


www = new WWW(. + "/.pdb");
#else
www = new WWW("file:///" + . + "/.pdb");
#endif
while (!)
yieldnull;
if (!.())
.Debug.();
byte[] pdb = ;
fs = new (dll);
p = new (pdb);
try
.(fs, p, new .Mono.Cecil.Pdb.());
catch
Debug.("加载热更DLL失败,请确保已经通过VS打开///1.6/Demo//.sln编译过热更DLL");
();
();

unity python热更新_Unity C#热更新方案 ILRuntime学

文章插图
void ()
#if DEBUG && ( |||| )
//由于Unity的接口只允许在主线程使用,为了避免出异常,需要告诉主线程的线程ID才能正确将函数运行耗时报告给
. = ....;
#endif
//这里做一些的注册,示例暂时没有需要注册的
void ()
//,第一次方法调用
.(".", "", null, null);
void ()
if (fs != null)
fs.Close();
if (p != null)
p.Close();
fs = null;
p = null;
void ()
惊喜!注释是纯中文的,作者一定是中国人!注释很详细,看注释就行了 。
其中比较重要的代码是:
//这个DLL文件是直接编译.sln生成的,已经在项目中设置好输出目录为,在VS里直接编译即可生成到对应目录,无需手动拷贝
//工程目录在\\\1.6\Demo\~
【unity python热更新_Unity C#热更新方案 ILRuntime学】//以下加载写法只为演示,并没有处理在编辑器切换到平台的读取,需要自行修改
WWW www = new WWW("file:///" + . + "/.dll");
//,第一次方法调用
.(".", "", null, null);
打开:
是Demo自带的C#热更新代码工程 。
工程目录在
\\\1.6\Demo\~文件夹下,用 打开该工程 。
注意:~ 后面带了个波浪号,Unity会自动忽略该目录,资源不会被导入,代码不会被编译,文件不会带进发布包 。
具体规则可以看官方文档:
修改热更新代码:
打开项目下的类 修改方法中输出的内容:
void ()
.Debug.Log("调用了热更新类的静态方法!");
生成热更新代码dll:
右键项目 > 生成
重新运行Hello World Demo:
查看输出结果,可以看到 我们修改的内容被输出了 。
通过以上步骤,了解了的基本运行流程 。
1.热更代码生成dll
2.Unity加载dll
3.Unity调用dll里的方法
三、创建自己的工程
从零开始创建自己的热更工程,体验完整配置流程 。
1.打开,新建项目 。
2.修改项目配置
选择类库(.NET ) 。
修改名称为
修改路径为 Unity项目根目录
3.添加的引用
在Unity中用 打开Unity Demo的任意一个脚本,VS会自动关联需要的Unity类库引用,在项目的引用中可以看到引用的dll路径 。
在我们自己的工程引用中添加该文件 。
有两个主要的路径
(1)在Unity安装目录下的\Data
我的电脑路径是:D:\SDK\Unity\2019.4.1f1\\Data\\\
把该文件夹内所有dll文件都引入到工程里 。
(2)在Unity工程根目录下的\\
我的电脑路径是:
D:\\\Unity 2019.3 \\\\
添加自己需要的dll,我引用了以下两个dll 。
-.dll
.UI.dll
注:Unity 2019中已经把类库拆的很零散了,应该是为了解耦,为了以后的规划 。他把类库拆成两个部分,内置的类库放在Unity安装目录下了,包管理器下载的插件都放在Unity工程目录下了,UGUI的库从内置位置移动到里了,可能以后要淘汰掉 。
4.编写 Hello World
添加完引用,可以开始写代码了 。
在我们自己的工程中添加一个类 .cs 并输入以下代码:
{
using ;
// 冰封百度的Blog:
class{
void Test() {
Debug.Log("Hello World");