zoukankan      html  css  js  c++  java
  • Unity By Reflection Update Scripts

    App热更新需求

    我正在使用Unity 3D开发一个Android的应用,它会下载AssetBundles并加载它们的内容,但由于AssetBundles不能包含脚本,我将使用预编译的C#脚本,并使用Mono反射来加载它(我不知道我会怎样,但看着办吧) 。但现在我不知道该如何预编译.cs文件,所以有谁都可以帮助我?

    思路分析

    把你的脚本通过MonoDevelop/VisualStudio编译成.dll,将你script.dll复制到你的unity project的Resource文件夹,把扩展名从xx.dll改成xx.bytes

    根据这个手册,我可以包括脚本,bytes(二进制数据),并通过反射加载它们。

    我了解所有的步骤,除了:我要怎样编译单个文件得到其字节码?是否有任何教程/帮助?

    Solution(解决办法)

    1.Open Monodevelop and create C#Library project
    2.Add UnityEngine.dll to References
    3.Compile your scripts
    4.Copy bin/xx.dll from your library project folder to Assets of your unity project and change extension from .dll to .bytes
    That's all.

    原理分析

    把Scripts打包进AssetBundles中,在游戏运行时动态下载Assetbundle,通过Reflection来加载并执行其中的方法。

    在Android平台是可行的,但IOS是不可行的,因为Apple不允许这么做。

  • 相关阅读:
    随时积累随手记(持续更新...)
    Zookeeper集群搭建
    Dubbo——基于Zookeeper服务框架搭建及案例演示
    nginx配置浅析
    阿里面试回来,想和Java程序员谈一谈
    博客收藏列表
    启示录:打造用户喜爱的产品
    js深拷贝和浅拷贝
    MyBatis 总结记录
    ActiveMQ初体验
  • 原文地址:https://www.cnblogs.com/zhaoqingqing/p/3848013.html
Copyright © 2011-2022 走看看