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

长沙建站网站模板wordpress站长

长沙建站网站模板,wordpress站长,机房建设,丰县微网站开发热更新的思想从本质上来讲#xff0c;要考虑一些问题。例如#xff0c;一个完整的游戏最多可以有多大比例的资源通过网络加载#xff1f;能否让尽可能多的资源通过网络加载#xff1f; 通过网络加载有很多好处#xff0c;不仅可以极大减小安装包的体积#xff0c;而且有…热更新的思想从本质上来讲要考虑一些问题。例如一个完整的游戏最多可以有多大比例的资源通过网络加载能否让尽可能多的资源通过网络加载 通过网络加载有很多好处不仅可以极大减小安装包的体积而且有助于游戏的推广传播。更重要的是以后游戏更新都不需要重新安装只要有网络打开游戏后自动加载新版本的资源就可以了。 那么哪些资源需要通过网络加载呢首先理论上几乎全部资源都可以通过网络加载其次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。 这种思路可以达到效果但不够灵活。更好的思路如下 服务器端的每一个资源文件都计算一次MD5码并将结果保存在资源列表里。本地的每一个文件也要计算一次MD5码为避免重复计算可以计算一次后就保存在本地的列表文件中。升级版本是对比服务器端每个文件的MD5码和本地文件的MD5码只下载MD5码不一致的文件下载完成后可以重新计算MD5码这样可以顺便检验在下载过程中数据传输是否出错确保资源一致以后可以修改本地版本号避免重复检查 MD5码 MD5码是一种数据加密算法它会便历文件中的所有数据并将所有的数据以一种特殊算法合并形成一个128比特16字节的数字。 相同数据计算出的MD5码也相同如果文件中有任何一个比特变化则生成的MD5码都会完全不同。现实中随意修改一个文件但MD5码不变的概率接近0.这里借用的正式MD5码的这一性质。 虽然MD5码是一种加密算法但其碰撞算法现已被破解因此不再作为加密算法使用。但由于其具有算法简单、计算快的优点因此作为文件一致性比较算法非常合适。 本文从思路上讲解了热更新这一技术产生的原因及其设计思想可以看出热更新是以动态资源管理技术为基础的也包括其他编程技术。热更新技术包含很多细节因此市面上出现了多种功能齐全的热更新框架。 这些框架主要有以下功能 提供执行热更新代码的虚拟机环境把引擎提供的类型、方法和属性导出让开发者可以在热更新代码中访问引擎功能将开发者编写的Unity脚本接口导出让热更新代码可以调用C#中的类型、方法和属性提供一些方法让Unity脚本可以使用热更新代码中的类型、函数和属性大同两套代码之间的桥梁 一般来说由于运行原理不同动态加载的代码的执行效率会低于原生脚本。如果确实发现因动态脚本代码发生性能热点可以将运算压力较大的部分用原生脚本编写并封装成函数然后让动态加载的代码调用该函数
http://www.ho-use.cn/article/10818276.html

相关文章:

  • 峨眉山移动网站建设静态网站什么意思
  • 男女做暧暧网站免费广州网站建设亅新科送推广
  • wordpress建站页面什么是网络营销评价
  • 网站建设规章制度重庆哪有作网站的
  • 珠海市横琴新区建设环保局网站网站建设的业务规划
  • 杭州做网站的公司哪些比较好我是建造网站
  • 经典重庆网站黑色企业网站
  • 网站访问统计 曲线图网络设计开发专业
  • 网站建设费用细项wordpress获取当前文章id
  • 程序网站开发学生个人作品集制作
  • 北京网站建设工作陕西高速公路建设集团公司网站
  • 修车店怎么做网站学做网站多长时间
  • 企业网站用哪个cms好wordpress文章视频
  • 上海网站备案中心logo在线设计标小智
  • 在深圳学网站设计欧派全屋定制多少钱一平米
  • 创新的微商城网站建设用wordpress做淘宝客
  • 设计型网站建设网站运营是什么意思
  • 网站建设洽谈方案阿里巴巴国际站外贸流程
  • 南京网站制作开发wordpress 产品管理
  • 青岛公司网站建设公司排名招标网官网登录
  • 加强企业网站建设小榄网站建设
  • 培训营销型网站建设怎样在微信上开店卖东西
  • dede手机医院网站模板个人免费网站注册com
  • 文档分享类网站建设wordpress主题添加字体设置
  • 企业如何选择网站搜索引擎推广预算
  • 青岛网站制作开发页面设计说明怎么写
  • 学校网站英文中国建设工程招聘信息网站
  • 云顶科技做网站的网站开发使用什么技术
  • 酒店网站建设方案结束语今天最新新闻10条
  • 丹东网站制作wordpress插件去除google