[Unity3D学习]Unity代码热更新 源码下载

之前的一篇文章《[Unity3D学习]Unity代码热更新解决方案测试结果总结》只是说了一下方案的流程,今天刚好有时间,又再看了一下热更新这一块!就直接将代码分享出来。代码热更新的核心基本实现,只是需要处理一些依赖等等。

资源都是放在我blog的服务器上,提供给大家测试。

时间有点晚了1:30,直接贴代码睡觉了!(最近一个月拼死的加班,实在太累。)

demo : http://pan.baidu.com/s/1c0cuTZa

 

参考文章:

http://blog.csdn.net/janeky/article/details/25923151

http://docs.unity3d.com/Manual/scriptsinassetbundles.html

22 Comments

  1. […] 下一篇: 《[Unity3D学习]Unity代码热更新 源码下载》 […]

  2. game says:

    您好,我最近也在弄unity3d代码热更新,准备用dll实现。看了您的demo,有个问题没有想请教下:
    您的例子里面有这样的代码:
    UIFont uifont = font.GetComponent();
    请问你是通过什么策略解决获得的uifont为空的问题的?

    • GameRisker says:

      NGUI的代码都是放在Index中的。请看我的上一篇文章。

      • game says:

        您好,想问下Game脚本所在工程里面需不需要有NGUI的代码。
        如果没有不需要的话,Game脚本中使用了NGUI的代码(UISprite),感觉应该编译不过呀
        如果引用的话,Core.assetbundle里面应该也会有NGUI的内容。

        • GameRisker says:

          Game 里面不需要包含NGUI代码的,可以单独打包!具体的打包方式,去网上找找吧!

          • game says:

            非常感谢

          • game says:

            大神,我在网上搜了。我找到的方法是先编译成dll(Monodevelop,或者VS),然后用BuildPipeline打包。我现在的问题是,我新建立了一个unity3d工程,里面放入Game脚本,可是编译不过(因为工程中没有引入NGUI),就没有办法用vs生成dll了,卡在这里不知道怎么解决了。能帮忙给个思路吗?

          • GameRisker says:

            3.将这个项目生成DLL,test.dll
            4.新建一个unity项目,将DLL倒入到Asset,改名为test.bytes,不然可能会报错
            5.利用我们之前实现过的打包脚本,将test.bytes打包成test.assetbundle。
            6.创建CodeUpdate.cs脚本,用于加载代码资源,反射调用。

          • game says:

            大神,我没说清楚问题,我现在是卡在了前两步。我是先建立了一个unity3d的空的工程,然后加入了Game脚本,因为Game脚本中使用了NGUI的代码,但是我的工程里面没有导入NGUI,所以编译就会报错,这个时候生成不了Dll。现在问题就是生成不了Dll。

          • GameRisker says:

            教你一个笨方法,将NGUI先做成dll 然后再打Game 就可以了。

          • game says:

            您好,我把NGUI的内容生成dll了,现在是能够把Game脚本单出打包了,也可以动态加载进Index工程。但是会报下面的错误:
            FileNotFoundException: Could not load file or assembly ‘NGUI, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’

            这个时候如果我也把这个NGUI的dll加在Index工程中时,又会和现有的工程中的NGUI代码冲突。请问您的Game脚本是怎么生成Dll的。我的QQ是820902063,大神,您要是方便的话,加下QQ,教教俺

      • SnowCold says:

        你有出现放在Plugin目录下的脚本,挂载到Prefab上之后,打成AssetBunble运行时内存出现泄漏的情况吗?

  3. game says:

    请问您是怎么生成Core.assetbundle的?我把Assembly里面的type打印出来了,只有一个,是不是Core.assetbundle里面只有一个Game脚本?
    Game脚本里面用到了NGUI的类,您是如何做到Core.assetbundle里面不包含NGUI的?
    大神求指教

  4. game says:

    请问您是怎么生成Core.assetbundle的?我把Assembly里面的type打印出来了,只有Game Game+d__0 Game+d__2,是不是Core.assetbundle里面只有一个Game脚本?
    Game脚本里面用到了NGUI的类,您是如何做到Core.assetbundle里面不包含NGUI的?
    大神求指教

  5. larnya says:

    System.Reflection.Assembly.Load 这个方法在未越狱的iOS上不能使用吧?楼主测过吗?

  6. jinqi166 says:

    System.Reflection.Assembly.Load 在IOS上用不了吧!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.