Unity[C#] Reflection To Update Scripts

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

答:把你的脚本通过MonoDevelop / VisualStudio编译成.dll,将你script.dll复制到您的统一项目的资产文件夹,将扩展名从.dll文件到.bytes

根据这个手册,我可以包括脚本,二进制数据,并通过反射加载它们。我了解所有的步骤,除了一个:我怎么可以编译脚本来获取二进制数据stroring它的二进制文件。?是否有任何教程/帮助?

UPD: 实际问题都可以重新表述为:“我怎么可以编译单个文件与MonoDevelop的,并得到其字节码”

Solution:

1.Open Monodevelop and create C#Library project
      2.Add UnityEngine.dll to References
      3.Compile your scripts
      4.Copy bin/.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 AppStore不允许这么做。

Unity[C#] Reflection To Update Scripts

时间: 2024-08-04 08:35:43

Unity[C#] Reflection To Update Scripts的相关文章

Unity[C#] Reflection Use

Reflection一个最有力的工具对于C#程序员. 最常用的例子来说明反射的用处是一个插件系统.假设你正在创建一个 接受用户创建 的扩展程序,有没有办法预先知道哪些方法这个扩展他们有或有扩展的名字将是什么,除非你可以检查编译的程序集,并在运行时提取信息,这正是反射呢,等等 目前,我正在开发一个游戏在Unity(一个多平台的游戏引擎和IDE),在用户 界面是"在游戏中".这意味着,而是采用Unity提供的API,它提供了相当强大的工具集来创建交互式图形用户界面的,我把3D对象在游戏中的

Unity 脚本中的update,fixedupdate,lateupdate

先放着 有功儿夫再来整理 https://www.cnblogs.com/fly-100/p/3777731.html https://www.cnblogs.com/hont/p/5184802.html http://blog.csdn.net/tyxkzzf/article/details/42473983 原文地址:https://www.cnblogs.com/crazytomato/p/8313493.html

Unity 3D实现帧同步技术

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解>电子工业出版社等. CSDN视频网址:http://edu.csdn.net/lecturer/144 现在竞技类网络游戏比较火,市面上也出现了很多这种类型的游戏竞赛,提到网络游戏就回避不了一个问题:同步技术,多个人在一个游戏场景围攻一个怪物或者说多人组队战斗等等.现在在移动端的游戏由

Unity协程(Coroutine)原理深入剖析(转载)

记得去年6月份刚开始实习的时候,当时要我写网络层的结构,用到了协程,当时有点懵,完全不知道Unity协程的执行机制是怎么样的,只是知道函数的返回值是IEnumerator类型,函数中使用yield return ,就可以通过StartCoroutine调用了.后来也是一直稀里糊涂地用,上网google些基本都是例子,很少能帮助深入理解Unity协程的原理的. 本文只是从Unity的角度去分析理解协程的内部运行原理,而不是从C#底层的语法实现来介绍(后续有需要再进行介绍),一共分为三部分: 线程(

Unity协程(Coroutine)原理深入剖析

尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 记得去年6月份刚开始实习的时候,当时要我写网络层的结构,用到了协程,当时有点懵,完全不知道Unity协程的执行机制是怎么样的,只是知道函数的返回值是IEnumerator类型,函数中使用yield return ,就可以通过StartCoroutine调用了.后来也是一直稀里糊涂地用,上网google些基本都是例子,很少能帮助深入理解Unity协程的原理的. 本文只是从Unity的角度去分析理解协程的内部运行原理

unity与iOS、Android交互

1.Unity调iOS的方法 在首页的viewcontroller里面实现方法 void _PressButton3(const char *args) { //  UnityAppController *unityapp = (UnityAppController *)[UIApplication sharedApplication].delegate; // [unityapp ShowWindowssubview]; } 在Unity里面 直接调用 _PressButton3(conten

【转】Unity协程(Coroutine)原理深入剖析

Unity协程(Coroutine)原理深入剖析 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 记得去年6月份刚开始实习的时候,当时要我写网络层的结构,用到了协程,当时有点懵,完全不知道Unity协程的执行机制是怎么样的,只是知道函数的返回值是IEnumerator类型,函数中使用yield return ,就可以通过StartCoroutine调用了.后来也是一直稀里糊涂地用,上网google些基本都是例子,很少能帮助深入理解Unit

Angular2版本更新

2.0.0-beta.0 somnambulant-inauguration (2015-12-15) Enjoy! 2.0.0-alpha.55 (2015-12-15) Bug Fixes router: export ROUTER_LINK_DSL_PROVIDER and hide MockPopStateEvent (fc75220) Features core: enable dev mode by default (3dca9d5) BREAKING CHANGES Before

Unity5.3官方VR教程重磅登场-系列7 优化VR体验

本文转自:知乎专栏-笨猫快乐学编程,作者:王寒 简介 对于VR应用来说,如果想要让用户获得好的用户体验,特别是免除恶心眩晕的困扰,在VR开发中进行优化是必不可少的,惟其如此才能达到我们期望的游戏运行帧速.和其它平台上的开发不同,对VR应用的优化应该在项目启动的前期就开始,而且应该贯穿始终,而不是像传统项目那样把优化的工作留到最后去做.此外,在目标设备上进行实际测试也是非常有必要的. 相比非VR项目来说,VR项目是非常消耗计算资源的,其主要原因就是所有的画面都必须为每只眼睛单独渲染一次.因此,在开