随笔分类 - Unity3D热更新全书-脚本篇
摘要:热更新
天下武功,无坚不破,唯快不破
热更新就是为了更快的把内容推到用户手中。
之前,我设计了C#Light,经过半年多的持续修补,勉强可用,磕磕绊绊。感谢那些,试过,骂过,用过的朋友,在你们的陪伴下一路走来,也让我更坚定了要把这件事做好的决心。于是就有了C#Light的2.0,L#。
为什么叫L#呢?因为这次是直接加载解析DLL执行,Load,有一个L因为直接执行的东西叫做IL,有一个L因为模拟...
阅读全文
摘要:上次的对比大家还有印象否,C#Light和ulua对比各有胜负 今天我们加入一个去反射优化,这是uLua没办法实现的优化,我们也就只能不要脸的胜之不武了 以原生执行同一测试时间为X1,数字越小的越快 项目 uLua C#Light C#light(去反射优化) 性能测试一 X4.5 X4.5 X2.19 性能测试二 X4.3 X3.63(快15%) X3.01 性能测试三 X6.87(...
阅读全文
摘要:让我们实际的研究一下如何将NGUI和C#LightEvil结合起来。 这里使用NGUI2.7,因为他是一个开源的版本,NGUI最新的版本未经作者的许可,是不可以带入我们的开源项目使用的。 这个例子完成的功能是从NGUI例子里找出了三个界面,按最下方的按钮依次进行切换 这是在之前的框架演示Mode1的基础上做的 由一个状态机去进行驱动,这也是我推荐各位使用脚本的方式。 《=这是脚本,也是程序 ...
阅读全文
摘要:C#LightEvil之前提供了很多和Unity结合的例子,都是采用把脚本文件放置在StreamingAssets中的方法。 这样可以利用Unity的特性,放在这个目录中的CS文件会被编译器编译,我们就利用C#编译器来对我们的脚本进行验证。 同时StreamingAssets中的文件又是直接随项目发布的,所以可以直接以文件方式取出这些脚本文件编译执行。 这是一个很巧妙的方式,但是用在实际项目中会有...
阅读全文
摘要:调试,这是一个无法规避的问题 C#Light 由于有 词法解释、语法解释、运行时三种情况 所以和C#也是有类似的问题 出错大致可以分为编译错误和运行时错误 拼写出莫名的东西或者语法不正确,会在编译阶段报错,这种错误很好检查,因为 C#Light语法是C#的严格子集,所有的C#Light脚本都可以用C#的标准做语法检查 这也是C#Light基本上是用VisualStudio做编辑器的原因所在,直...
阅读全文
摘要:上篇明确了我们探讨的脚本是什么:是写在文本文件里面的代码,可以作为资源加载,取得字符串再执行。 可是为什么世界上会有那么多的脚本?而其使用方法完全看起来不一样呢?这是因为每种脚本都有自己的定位,在不同的复杂度脚本将表现出完全不同的样貌,我们来看一下。 我们把脚本与程序的结合方式划分成五种,以复杂度排序说明。 C#Light是定位复杂度较低的脚本,C#Evil是定位复杂度较高的脚本,他们就在脚本定位...
阅读全文
摘要:开篇之前还是要先说明,这是一份给经验并不丰富的程序员阅读的文字。 有需求、有疑惑,往下看。 第一个问题什么是脚本?程序和脚本如何区分?我们给Unity编写的组件是程序还是脚本? 这些问题本文无意去解答,因为其中混合着太多有立场的东西,站在不同的立场会有不同的看法,这其中的矛盾不是简单可以调和的。 只要提出一个观点,就很容易陷入语言大战的泥潭。 我们不妨从另一个角度来思考,为什么要分程序和脚本,是...
阅读全文