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不允许这么做。

相关文章

前言 本文所指的google类vr设备是指: 谷歌的Cardboard、三星Gear VR、暴风魔镜等这样的手机VR盒子,而...
ImageTarget 前言 ImageTarget 顾名思义,就是图像识别,本文记录下作者最近学习vuforia中的imageTarge...
前言 关于google vr sdk的具体使用,传送门 Gvr SDK for Unity 分析(一) Google Daydream平台已经整合进...
VuMark 准备知识 Vumark的说明: https://library.vuforia.com/articles/Training/VuMark https://libr...
环境 引擎: Unity 5.3.6f1 SDK: Vuforia 6.0.112 测试系统:Android 4.2/4.3 6.0 Android 6出错 在Andr...
前言 最近VR如火如茶,就学习就落伍啦,所以有空闲时间研究下相关知识。 本文介绍了两种方法来制作VR场...