unity3d游戏框架设计2——加载(动态更新).docx

unity3d游戏框架设计2——加载(动态更新).docx

ID:52323003

大小:14.91 KB

页数:2页

时间:2020-03-26

unity3d游戏框架设计2——加载(动态更新).docx_第1页
unity3d游戏框架设计2——加载(动态更新).docx_第2页
资源描述:

《unity3d游戏框架设计2——加载(动态更新).docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、U3D最好的东西之一就是加载了,它已经封装得非常好,能实现版本的自我控制。但经常都有朋友在抱怨U3D不能动态更新(C#代码),只能用lua之类的话,其实我想说,U3D真的可以进行动态代码更新。下面我就仅谈如何进行代码更新:   首先,代码更新要求代码必须是一个U3D能识别的资源,所以采用.dll方式进行加载是不可行的。那如何做呢?(文章出自狗刨学习网)  大家可以将.dll的文件直接更名为.bytes或.txt等文本文件的名称,可以打包成bundle文件(也可以不打包,但需要自己控制版本),从网络上加载下来的b

2、undle文件中,可以通过以下代码加载.dll中的脚本Typetype=loader.GetClass("Core.Src.Engine","Core");Componentengine=gameObject.AddComponent(type);System.Reflection.MethodInfomethod=type.GetMethod("Init");method.Invoke(engine,newobject[]{});  其中,Core为.dll的名称,Core.Src.Engine为一个Mono

3、Behavior脚本,其内部有一个Init()函数,用于初始化。   好了,其实说到这里就已经解决动态更新代码的问题了。但也有很多人问我以下两个问题:1.Core库里面怎么访问NGUI、tk2d等插件,根本没法写代码嘛? 答:难道NGUI、tk2d就不能做成动态链接库了么?大家应该明白了吧。2.就算做成动态链接库,用U3D怎么调试开发呢?  答:你可以在其他目录下建立vs工程,其中一个模块在U3D的工程中,更改该模块编译输出路径不在U3D工程中,不就可以既能调试又能编译成.dll了么,最多自己写个工具改文件名或

4、打包Bundle。   至于如何切换.dll中的代码还是U3D工程中的代码,我贴一段代码,我想大家就明白了:IBundleLoaderloader=BundleManager.instance.Get("DLL");if(loader!=null){   Typetype=loader.GetClass("Core.Src.Engine","Core");   Componentengine=gameObject.AddComponent(type);   System.Reflection.MethodInf

5、omethod=type.GetMethod("Init");   method.Invoke(engine,newobject[]{BundleManager.instance});}else{   Core.Src.Engineengine=gameObject.AddComponent();   engine.Init(BundleManager.instance);}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。