1.从零开始的UnityGameFramework使用教程(壹)
2.Unity-GameFramework框架(四)—— 对象池
3.游戏开发工具箱(4) 游戏框架秘籍——使用Game Framework进行资源更新(中一)
从零开始的UnityGameFramework使用教程(壹)
从零开始UnityGameFramework教程:入门篇
本文将带你通过一步步操作,从零开始在Unity环境中配置和使用UnityGameFramework。不涉及框架内部细节,专注于实际应用。
首先,如果你遇到错误或不清晰的深圳市溯源码地方,欢迎指正,我会及时进行修正。我们从替换源码开始,通过E大GitHub获取源码,需删除原有GameFramework.dll并添加新创建的程序集定义。
接下来,模仿StarForce文件结构,复制GameEntry类并创建启动场景。组件获取就通过GameEntry.XXX来实现。数据表处理涉及原始样式、生成工具和资源优先级,需要将数据表文件和生成的筹码动作指标源码代码文件放在相应位置。
流程组件加载中,我们首先加载一个场景,通过在Scripts/Procedure下的多个类中重写方法来控制流程。配置UI组件包括创建Canvas、菜单预制体和通用对话框。UI组件中的事件处理和音频配置也在这一阶段完成。
本地化组件在预加载流程中添加字典加载,更换Localization Helper并设置字体。声音组件的配置和背景音乐的使用,使游戏声音功能生效。最后,加载第一个实体,包括实体数据、逻辑分离,以及配置实体组件和组别。
打包发布前,需要在Editor文件夹设置GameFrameworkConfigs和资源管理。红包购物商城源码按照官方文档设置资源列表,打包流程并确保所有资源已正确配置。最后,通过添加闪屏和初始化资源流程,确保在运行时与编辑器模式相同。
通过以上步骤,你将逐步掌握UnityGameFramework的使用,为你的游戏开发打下坚实基础。
Unity-GameFramework框架(四)—— 对象池
对象池与引用池具有相似的功能,都是为了避免频繁创建和销毁对象而设计,常用于游戏实例中,并且加入了释放事件和更新机制。
引用池主要用于代码中频繁使用的对象,例如任务、事件参数以及各种模块信息。
获取对象池组件的成员函数可以在ObjectPoolComponent类中找到。
创建对象池时,货物信息源码我们需要在源码中定义字典的key为名字和对象类型,value为对应类型的对象池。
创建的对象池统一放置在m_ObjectPools这个总的对象池中。
allowMultiSpawn表示是否允许对象被多次获取。
atutoReleaseInterval表示对象池自动释放可释放对象的间隔。
capacity表示对象池的容量,超过容量会自动释放对象。
expireTime表示对象池中对象的过期时间,到时间会自动释放。
priority表示对象池的优先级。
获取对象时,会根据传入的key查询value列表,循环查询对象是否被占用,如果没有被占用则返回。
IsInUse并不是bool类型管理,而是类似引用计数,将m_SpawnCount的淘宝购买源码版权数加1,参数表示对象被占用的次数,这样做主要是为了兼容m_AllowMultiSpawn参数,以了解对象被占用的次数和是否被占用。
如果所有对象都被占用,会返回null,这时我们可以调用Register函数,多添加一个对象。
在注册对象时,如果超过了设置的容量,对象池会自动释放所有对象。
合理设置对象池容量和用完对象后进行释放是必要的。
在GF中,多键值对字典的数据结构继承了.Net的迭代器接口,Key对应一个GF自身实现的列表。
游戏开发工具箱(4) 游戏框架秘籍——使用Game Framework进行资源更新(中一)
在上文中,我们概述了游戏框架的基础和启动流程,接下来,我们将深入探讨E大开源的Unity通用游戏框架——Game Framework,它在资源管理和更新方面展现出高效性。框架结构与职责
Game Framework由两大部分构成:独立于Unity的纯C# Game Framework模块,以及封装Unity特性的Unity GameFramework模块。这种模块化设计确保了跨引擎的可复用性,只需替换Unity部分即可迁移至其他平台。 尽管更新频率不高,但Game Framework的设计具有通用性,确保在Unity更新大改动时,框架结构依然稳定,避免频繁添加新模块。 框架的核心职责在于提供底层模块,如流程管理、消息传递、文件管理与资源管理,而非游戏业务逻辑,如动态资源下载和更新,留给开发者更大的扩展空间。功能扩展与示例项目
Game Framework的接口设计便于开发者对其进行修改和扩展,尽管表格和本地化支持可能有待提升,但灵活性极高。官方示例项目Star Force在GitHub上供下载,它是Unity GameFramework的子模块,也可独立下载并集成到Unity .3.f1的工程中。资源管理与更新流程
Unity引擎通过封装,简化了游戏开发过程,提升效率。首先,将Unity GameFramework文件复制到项目文件夹,然后以管理员权限运行HFS Http文件服务器,配置BuildInfo.txt以指向资源服务器地址。 在资源打包阶段,AssetBundle会自动复制到StreamingAssets文件夹。Resource Editor工具提供直观操作,修改资源后记得保存。通过Resource Builder设置导出目录、压缩方式和版本信息,点击Build进行资源包生成。 资源包结构包括Package单机模式和Updatable可更新模式,我们选择Package模式打包,然后通过Build Settings调整分辨率,选择Windows平台打包游戏。运行新版本验证资源更新流程,包括本地资源服务器的配置和资源版本管理。资源更新关键步骤
打开导出资源目录,注意其文件结构,包含 BuildReport、Full、Package、Packed 和 Working 文件夹。
在BuildInfo.txt中配置资源服务器版本信息,客户端与服务器版本对比,下载必要资源。
整合资源包,完成后进入游戏,检查资源版本一致性。
资源更新成功后,飞机贴图变更,体验游戏资源动态更新的便利性。
困惑解答
对于GameFrameworkVersion.dat,它是资源版本的“数据库”,包含压缩和未压缩版本信息。GameFrameworkList.dat则记录游戏中已下载的资源,单机模式下不需要,但在更新模式下用于记录资源下载状态。 资源包整合是通过Game Framework的VFS实现的,减少了文件数量,优化性能。在ResourceCollection.xml中添加FileSystem属性配置资源包在虚拟文件系统中的结构。深入学习与源代码探索
通过官方示例深入了解资源更新流程,无需深入代码。未来文章将逐步深入到Game Framework源代码层面,搭建游戏框架。请关注,我们下期将继续解析Game Framework的实现细节。