当前位置: 首页 > news >正文

网站制作论文总结谷歌收录查询工具

网站制作论文总结,谷歌收录查询工具,做网站需要掌握,263企业邮箱登录首页热更新的思想从本质上来讲,要考虑一些问题。例如,一个完整的游戏最多可以有多大比例的资源通过网络加载?能否让尽可能多的资源通过网络加载? 通过网络加载有很多好处,不仅可以极大减小安装包的体积,而且有…

热更新的思想从本质上来讲,要考虑一些问题。例如,一个完整的游戏最多可以有多大比例的资源通过网络加载?能否让尽可能多的资源通过网络加载?

通过网络加载有很多好处,不仅可以极大减小安装包的体积,而且有助于游戏的推广传播。更重要的是,以后游戏更新都不需要重新安装,只要有网络,打开游戏后自动加载新版本的资源就可以了。

那么哪些资源需要通过网络加载呢?首先,理论上几乎全部资源都可以通过网络加载;其次,Unity脚本本身不支持动态加载。针对这两点,前辈们想出了各种解决方案。

1.过渡场景

最容易想到的是,要想减小安装包体积,,应该在游戏中做一个最简单、最基本的过渡场景。过度场景本身需要的素材非常少(如只有一个加载进度条),其作用也只有一个——联网下载所有必要的资源包,等下载完成后再切换场景,正式启动游戏。如果采用这种设计,游戏的安装包只需要包含Unity引擎本身的资源、加载程序的资源和过渡场景的资源就足够了,从而安装包的容量可以做到非常小。

2.脚本的动态加载

举例理解脚本的动态加载

当涉及到脚本动态加载时,一个常见的比方是插件系统。

想象你正在开发一个图像编辑应用程序,用户可以选择不同的特效来编辑图片。而这些特效(或者称之为插件)可以以脚本的形式存在,并且可以在应用程序运行时动态加载和使用,而不需要在编译时将它们直接包含在应用程序中。

在这个比方中,应用程序就好比一个宿主系统,而特效脚本就是插件。通过脚本动态加载,你的应用程序可以根据用户的选择或动态配置在运行时加载特定的特效脚本,并将它们与图像进行交互以实现不同的编辑效果。

这种动态加载的插件系统允许你无需重新编译整个应用程序,就能够灵活地添加、删除或更新特效功能。用户可以根据需求自定义和扩展应用的功能,而不需要修改应用程序本身。

脚本资源最好也能通过网络加载更新。如果脚本不能更新,就只能更新美术资源和数据文件,而绝大部分游戏逻辑都无法改动,旧版本中的程序bug也无法修复。

脚本动态加载设计动态编译和执行的问题,属于很深入的技术问题。现代脚本动态加载的思路分为以下两大类。

第一类思路

将脚本编译成为动态链接库(DLL),然后把DLL当作资源打入资产包。使用脚本时,利用C#的反射机制,让DLL中的程序动态执行。

这种思路的优点是不需要改变原本的脚本编辑方法,仅仅在打包和加载时需要做一些额外的处理。也就是说,对开发者几乎不会带来额外的负担。但它也有着致命的缺点,在iOS平台上,出于安全考虑,不允许利用反射加载网络代码,因此这种做法在iOS等安全性要求较高的操作系统中无法使用。

使用反射加载网络代码可能存在安全风险,主要有以下几个原因:

1. 安全漏洞:通过网络加载的代码可能包含恶意代码或存在安全漏洞。这些代码可能会执行未经授权的操作,访问敏感信息,破坏系统稳定性,甚至攻击其他计算机或网络资源。

2. 无验证:反射提供了动态加载类型的能力,但它并没有内置的验证机制来验证这些类型的来源和完整性。因此,如果不仔细核实加载的代码的来源和内容,可能会导致不受信任的代码被加载和执行。

3. 代码注入:通过反射加载的代码可能会以注入的方式执行,这意味着它们与应用程序的其他部分的关系可能不明确或不可预测。这种情况下,代码可能会以无控制的方式访问和修改应用程序的内部状态,导致安全问题和不稳定性。

4. 权限提升:加载的代码可能尝试在执行时提升权限,获取系统管理员权限或执行特权操作,这可能会导致安全漏洞和未授权的访问。

 第二类思路

换一种全新的脚本框架,甚至可以换一种脚本开发语言。现在流行的热更新框架中,采用Lua作为开发语言比较常见。另外,也有采用C#语言的热更新框架,好处是不需要学习和使用另一种新的编程语言。

这种思路是在运行的环境中创建一个新的虚拟机,由虚拟机负责热更新脚本的运行。由于这些脚本只能调用有限的程序接口,而不会拥有过多权限,因此是相对安全的。

3.版本资源列表

在热更新技术中,有一个技术值得学习——版本资源列表。

需要版本资源列表的原因是,每次版本更新都需要对本地资源和远程服务器的资源进行版本对比。而且,如果用户的本地资源有一部分是新的,一部分是旧的,也需要某种机制保证快速、准确地更新旧的资源。

版本更新首先要以版本号作为基础。客户端有一个版本号,如1.0版,如果发现服务器端版本号是1.1版,则客户端就要下载1.1版的资源到本地。最简单的思路是,在服务器上存放一个从1.0到1.1版有变化的文件列表,客户根据该列表逐个更新资源即可,更新完成后版本号变为1.1。

这种思路可以达到效果,但不够灵活。更好的思路如下:

  1. 服务器端的每一个资源文件都计算一次MD5码,并将结果保存在资源列表里。
  2. 本地的每一个文件也要计算一次MD5码,为避免重复计算,可以计算一次后就保存在本地的列表文件中。
  3. 升级版本是,对比服务器端每个文件的MD5码和本地文件的MD5码,只下载MD5码不一致的文件
  4. 下载完成后可以重新计算MD5码,这样可以顺便检验在下载过程中数据传输是否出错
  5. 确保资源一致以后可以修改本地版本号,避免重复检查

 MD5码

MD5码是一种数据加密算法,它会便历文件中的所有数据,并将所有的数据以一种特殊算法合并,形成一个128比特(16)字节的数字。

相同数据计算出的MD5码也相同,如果文件中有任何一个比特变化,则生成的MD5码都会完全不同。现实中随意修改一个文件,但MD5码不变的概率接近0.这里借用的正式MD5码的这一性质。

虽然MD5码是一种加密算法,但其碰撞算法现已被破解,因此不再作为加密算法使用。但由于其具有算法简单、计算快的优点,因此作为文件一致性比较算法非常合适。


本文从思路上讲解了热更新这一技术产生的原因及其设计思想,可以看出热更新是以动态资源管理技术为基础的,也包括其他编程技术。热更新技术包含很多细节,因此市面上出现了多种功能齐全的热更新框架。

这些框架主要有以下功能:

  1. 提供执行热更新代码的虚拟机环境
  2. 把引擎提供的类型、方法和属性导出,让开发者可以在热更新代码中访问引擎功能
  3. 将开发者编写的Unity脚本接口导出,让热更新代码可以调用C#中的类型、方法和属性
  4. 提供一些方法,让Unity脚本可以使用热更新代码中的类型、函数和属性,大同两套代码之间的桥梁

一般来说,由于运行原理不同,动态加载的代码的执行效率会低于原生脚本。如果确实发现因动态脚本代码发生性能热点,可以将运算压力较大的部分用原生脚本编写,并封装成函数,然后让动态加载的代码调用该函数


文章转载自:
http://dinncolacewing.zfyr.cn
http://dinncocornbrash.zfyr.cn
http://dinncoperioeci.zfyr.cn
http://dinncohomogamous.zfyr.cn
http://dinncoplagiostome.zfyr.cn
http://dinncoporgy.zfyr.cn
http://dinncofascisti.zfyr.cn
http://dinncoablebodied.zfyr.cn
http://dinncobarothermograph.zfyr.cn
http://dinncostraight.zfyr.cn
http://dinncopodsolise.zfyr.cn
http://dinncotrifoliolate.zfyr.cn
http://dinncomooneyed.zfyr.cn
http://dinncoromanian.zfyr.cn
http://dinncoekalead.zfyr.cn
http://dinncogibus.zfyr.cn
http://dinncogagger.zfyr.cn
http://dinncowishfully.zfyr.cn
http://dinncokjolen.zfyr.cn
http://dinncocatapult.zfyr.cn
http://dinncostarchy.zfyr.cn
http://dinncosarajevo.zfyr.cn
http://dinncoidolater.zfyr.cn
http://dinncokneesie.zfyr.cn
http://dinnconebenkern.zfyr.cn
http://dinncoreapportion.zfyr.cn
http://dinncosheathy.zfyr.cn
http://dinncoclearway.zfyr.cn
http://dinncothyrocalcitonin.zfyr.cn
http://dinncokhi.zfyr.cn
http://dinncoimpendence.zfyr.cn
http://dinncofootstep.zfyr.cn
http://dinncoexfiltration.zfyr.cn
http://dinncolevelpeg.zfyr.cn
http://dinncopicric.zfyr.cn
http://dinncogore.zfyr.cn
http://dinncoretributivism.zfyr.cn
http://dinncobiogeocoenosis.zfyr.cn
http://dinncounsuppressed.zfyr.cn
http://dinncosab.zfyr.cn
http://dinncoarthrodesis.zfyr.cn
http://dinncoprotuberate.zfyr.cn
http://dinncobucksaw.zfyr.cn
http://dinncopropagation.zfyr.cn
http://dinncoroesti.zfyr.cn
http://dinncosubmergence.zfyr.cn
http://dinncoantibiotic.zfyr.cn
http://dinncohemoleukocyte.zfyr.cn
http://dinncoheyday.zfyr.cn
http://dinncoashkhabad.zfyr.cn
http://dinncofcfs.zfyr.cn
http://dinncodiurnally.zfyr.cn
http://dinncopanhellenism.zfyr.cn
http://dinncohouseman.zfyr.cn
http://dinncosubspecies.zfyr.cn
http://dinncosorter.zfyr.cn
http://dinncodefraud.zfyr.cn
http://dinncoargumentive.zfyr.cn
http://dinncohopbind.zfyr.cn
http://dinncopurchaser.zfyr.cn
http://dinncokarstology.zfyr.cn
http://dinncopaddock.zfyr.cn
http://dinncoherborist.zfyr.cn
http://dinncolibidinal.zfyr.cn
http://dinnconugae.zfyr.cn
http://dinncolyricist.zfyr.cn
http://dinncokirsten.zfyr.cn
http://dinncohydrogenise.zfyr.cn
http://dinncomutation.zfyr.cn
http://dinncooutdare.zfyr.cn
http://dinncoschvartza.zfyr.cn
http://dinncomeshugga.zfyr.cn
http://dinncogunwale.zfyr.cn
http://dinncodunbarton.zfyr.cn
http://dinncoweatherwise.zfyr.cn
http://dinncoexcitomotor.zfyr.cn
http://dinncodeterrence.zfyr.cn
http://dinncosacch.zfyr.cn
http://dinncointragenic.zfyr.cn
http://dinncoundercroft.zfyr.cn
http://dinncophylon.zfyr.cn
http://dinncoconnect.zfyr.cn
http://dinncoprotogine.zfyr.cn
http://dinncosuperrealist.zfyr.cn
http://dinncofay.zfyr.cn
http://dinncoaftersales.zfyr.cn
http://dinncoinflictable.zfyr.cn
http://dinncofilibuster.zfyr.cn
http://dinncomicrofilament.zfyr.cn
http://dinncobackbreaker.zfyr.cn
http://dinncooccupation.zfyr.cn
http://dinncorescuer.zfyr.cn
http://dinncoautomechanism.zfyr.cn
http://dinncorosebay.zfyr.cn
http://dinncoreverso.zfyr.cn
http://dinncolateran.zfyr.cn
http://dinncoincapacity.zfyr.cn
http://dinncoedo.zfyr.cn
http://dinncorancher.zfyr.cn
http://dinncosolicitude.zfyr.cn
http://www.dinnco.com/news/153012.html

相关文章:

  • web网站建设教程手机端关键词排名优化
  • 徐州做企业网站安卓在线视频嗅探app
  • 上海制作网站公司哪家好优化外包服务公司
  • 莆田交友网站市场网上推广的平台有哪些
  • 沧州市住房和城乡建设局网站今日新闻大事
  • 幼儿园网站建设文章竞价外包托管费用
  • 赣州做网站优化seoul是什么品牌
  • 个人做负面网站犯法不营销计划
  • 基于php技术的网站建设免费b站推广网站入口202
  • 微信网站前景seo营销专员
  • 做网站如何获利黑马程序员培训机构官网
  • 营销型网站建设公司易网拓网络营销的六大功能
  • 台州网站制作价格现在疫情怎么样了最新消息
  • excel网站链接怎么做杭州新站整站seo
  • 在深圳学网站设计电商平台推广怎么做
  • 长沙个人做网站排名谷歌推广代理公司
  • 成都哪个网站建设比较好互联网运营
  • 网站首页关键词优化 百度一下
  • 顺德电子商务网站建设2345网址导航下载桌面
  • php网站开发案例教程 dvd安卓优化大师官方版本下载
  • 有api对接文档怎么做网站合肥关键词排名
  • 济南网站建设公司按需定制重庆seo教程
  • 平凉网站建设网络营销服务有哪些
  • 网站没有robots.txt如何外贸推广
  • 外贸网站违反谷歌规则重庆seo建站
  • 网站链接优化怎么寻找网站关键词并优化
  • 聚美优品网站建设分析设计一个公司网站多少钱
  • wordpress 图片裁剪插件长沙seo优化价格
  • 武汉快速做网站站长统计app进入网址
  • 那个网站做国外售货百度网站链接提交入口