实例介绍
Game Framework 是一个基于 Unity 引擎的游戏框架,主要对游戏开发过程中常用模块进行了封装,很大程度地规范开发过程、加快开发速度并保证产品质量。
在最新的 Game Framework 版本中,包含以下 19 个内置模块,后续我们还将开发更多的扩展模块供开发者使用。
- 全局配置 (Config) - 存储一些全局的只读的游戏配置,如玩家初始速度、游戏初始音量等。
- 数据结点 (Data Node) - 将任意类型的数据以树状结构的形式进行保存,用于管理游戏运行时的各种数据。
- 数据表 (Data Table) - 可以将游戏数据以表格(如 Microsoft Excel)的形式进行配置后,使用此模块使用这些数据表。数据表的格式是可以自定义的。
- 调试器 (Debugger) - 当游戏在 Unity 编辑器中运行或者以 Development 方式发布运行时,将出现调试器窗口,便于查看运行时日志、调试信息等。用户还可以方便地将自己的功能注册到调试器窗口上并使用。
- 下载 (Download) - 提供下载文件的功能,支持断点续传,并可指定允许几个下载器进行同时下载。更新资源时会主动调用此模块。
- 实体 (Entity) - 我们将游戏场景中,动态创建的一切物体定义为实体。此模块提供管理实体和实体组的功能,如显示隐藏实体、挂接实体(如挂接武器、坐骑,或者抓起另一个实体)等。实体使用结束后可以不立刻销毁,从而等待下一次重新使用。
- 事件 (Event) - 游戏逻辑监听、抛出事件的机制。Game Framework 中的很多模块在完成操作后都会抛出内置事件,监听这些事件将大大解除游戏逻辑之间的耦合。用户也可以定义自己的游戏逻辑事件。
- 文件系统 (File System) - 虚拟文件系统使用类似磁盘的概念对零散文件进行集中管理,优化资源加载时产生的内存分配,甚至可以对资源进行局部片段加载,这些都将极大提升资源加载时的性能。
- 有限状态机 (FSM) - 提供创建、使用和销毁有限状态机的功能,一些适用于有限状态机机制的游戏逻辑,使用此模块将是一个不错的选择。
- 本地化 (Localization) - 提供本地化功能,也就是我们平时所说的多语言。
【实例截图】
【核心代码】
文件清单
└── GameFramework-d0c010b05167c58e92350449d04864a91ca13fd2
├── GameFramework
│ ├── Base
│ │ ├── DataProvider
│ │ │ ├── DataProviderCreator.cs
│ │ │ ├── DataProvider.cs
│ │ │ ├── IDataProvider.cs
│ │ │ ├── IDataProviderHelper.cs
│ │ │ ├── ReadDataDependencyAssetEventArgs.cs
│ │ │ ├── ReadDataFailureEventArgs.cs
│ │ │ ├── ReadDataSuccessEventArgs.cs
│ │ │ └── ReadDataUpdateEventArgs.cs
│ │ ├── DataStruct
│ │ │ └── TypeNamePair.cs
│ │ ├── EventPool
│ │ │ ├── BaseEventArgs.cs
│ │ │ ├── EventPool.cs
│ │ │ ├── EventPool.Event.cs
│ │ │ └── EventPoolMode.cs
│ │ ├── GameFrameworkAction.cs
│ │ ├── GameFrameworkEntry.cs
│ │ ├── GameFrameworkEventArgs.cs
│ │ ├── GameFrameworkException.cs
│ │ ├── GameFrameworkFunc.cs
│ │ ├── GameFrameworkLinkedList.cs
│ │ ├── GameFrameworkLinkedListRange.cs
│ │ ├── GameFrameworkModule.cs
│ │ ├── GameFrameworkMultiDictionary.cs
│ │ ├── GameFrameworkSerializer.cs
│ │ ├── Log
│ │ │ ├── GameFrameworkLog.cs
│ │ │ ├── GameFrameworkLog.ILogHelper.cs
│ │ │ └── GameFrameworkLogLevel.cs
│ │ ├── ReferencePool
│ │ │ ├── IReference.cs
│ │ │ ├── ReferencePool.cs
│ │ │ ├── ReferencePoolInfo.cs
│ │ │ └── ReferencePool.ReferenceCollection.cs
│ │ ├── TaskPool
│ │ │ ├── ITaskAgent.cs
│ │ │ ├── StartTaskStatus.cs
│ │ │ ├── TaskBase.cs
│ │ │ ├── TaskInfo.cs
│ │ │ ├── TaskPool.cs
│ │ │ └── TaskStatus.cs
│ │ ├── Variable
│ │ │ ├── GenericVariable.cs
│ │ │ └── Variable.cs
│ │ └── Version
│ │ ├── Version.cs
│ │ └── Version.IVersionHelper.cs
│ ├── Config
│ │ ├── ConfigManager.ConfigData.cs
│ │ ├── ConfigManager.cs
│ │ ├── IConfigHelper.cs
│ │ └── IConfigManager.cs
│ ├── DataNode
│ │ ├── DataNodeManager.cs
│ │ ├── DataNodeManager.DataNode.cs
│ │ ├── IDataNode.cs
│ │ └── IDataNodeManager.cs
│ ├── DataTable
│ │ ├── DataTableBase.cs
│ │ ├── DataTableManager.cs
│ │ ├── DataTableManager.DataTable.cs
│ │ ├── IDataRow.cs
│ │ ├── IDataTable.cs
│ │ ├── IDataTableHelper.cs
│ │ └── IDataTableManager.cs
│ ├── Debugger
│ │ ├── DebuggerManager.cs
│ │ ├── DebuggerManager.DebuggerWindowGroup.cs
│ │ ├── IDebuggerManager.cs
│ │ ├── IDebuggerWindow.cs
│ │ └── IDebuggerWindowGroup.cs
│ ├── Download
│ │ ├── Constant.cs
│ │ ├── DownloadAgentHelperCompleteEventArgs.cs
│ │ ├── DownloadAgentHelperErrorEventArgs.cs
│ │ ├── DownloadAgentHelperUpdateBytesEventArgs.cs
│ │ ├── DownloadAgentHelperUpdateLengthEventArgs.cs
│ │ ├── DownloadFailureEventArgs.cs
│ │ ├── DownloadManager.cs
│ │ ├── DownloadManager.DownloadAgent.cs
│ │ ├── DownloadManager.DownloadCounter.cs
│ │ ├── DownloadManager.DownloadCounter.DownloadCounterNode.cs
│ │ ├── DownloadManager.DownloadTask.cs
│ │ ├── DownloadManager.DownloadTaskStatus.cs
│ │ ├── DownloadStartEventArgs.cs
│ │ ├── DownloadSuccessEventArgs.cs
│ │ ├── DownloadUpdateEventArgs.cs
│ │ ├── IDownloadAgentHelper.cs
│ │ └── IDownloadManager.cs
│ ├── Entity
│ │ ├── EntityManager.cs
│ │ ├── EntityManager.EntityGroup.cs
│ │ ├── EntityManager.EntityInfo.cs
│ │ ├── EntityManager.EntityInstanceObject.cs
│ │ ├── EntityManager.EntityStatus.cs
│ │ ├── EntityManager.ShowEntityInfo.cs
│ │ ├── HideEntityCompleteEventArgs.cs
│ │ ├── IEntity.cs
│ │ ├── IEntityGroup.cs
│ │ ├── IEntityGroupHelper.cs
│ │ ├── IEntityHelper.cs
│ │ ├── IEntityManager.cs
│ │ ├── ShowEntityDependencyAssetEventArgs.cs
│ │ ├── ShowEntityFailureEventArgs.cs
│ │ ├── ShowEntitySuccessEventArgs.cs
│ │ └── ShowEntityUpdateEventArgs.cs
│ ├── Event
│ │ ├── EventManager.cs
│ │ ├── GameEventArgs.cs
│ │ └── IEventManager.cs
│ ├── FileSystem
│ │ ├── CommonFileSystemStream.cs
│ │ ├── FileInfo.cs
│ │ ├── FileSystemAccess.cs
│ │ ├── FileSystem.BlockData.cs
│ │ ├── FileSystem.cs
│ │ ├── FileSystem.HeaderData.cs
│ │ ├── FileSystemManager.cs
│ │ ├── FileSystemStream.cs
│ │ ├── FileSystem.StringData.cs
│ │ ├── IFileSystem.cs
│ │ ├── IFileSystemHelper.cs
│ │ └── IFileSystemManager.cs
│ ├── Fsm
│ │ ├── FsmBase.cs
│ │ ├── Fsm.cs
│ │ ├── FsmManager.cs
│ │ ├── FsmState.cs
│ │ ├── IFsm.cs
│ │ └── IFsmManager.cs
│ ├── GameFramework.csproj
│ ├── Localization
│ │ ├── ILocalizationHelper.cs
│ │ ├── ILocalizationManager.cs
│ │ ├── Language.cs
│ │ └── LocalizationManager.cs
│ ├── Network
│ │ ├── AddressFamily.cs
│ │ ├── INetworkChannel.cs
│ │ ├── INetworkChannelHelper.cs
│ │ ├── INetworkManager.cs
│ │ ├── IPacketHandler.cs
│ │ ├── IPacketHeader.cs
│ │ ├── NetworkClosedEventArgs.cs
│ │ ├── NetworkConnectedEventArgs.cs
│ │ ├── NetworkCustomErrorEventArgs.cs
│ │ ├── NetworkErrorCode.cs
│ │ ├── NetworkErrorEventArgs.cs
│ │ ├── NetworkManager.ConnectState.cs
│ │ ├── NetworkManager.cs
│ │ ├── NetworkManager.HeartBeatState.cs
│ │ ├── NetworkManager.NetworkChannelBase.cs
│ │ ├── NetworkManager.ReceiveState.cs
│ │ ├── NetworkManager.SendState.cs
│ │ ├── NetworkManager.TcpNetworkChannel.cs
│ │ ├── NetworkManager.TcpWithSyncReceiveNetworkChannel.cs
│ │ ├── NetworkMissHeartBeatEventArgs.cs
│ │ ├── Packet.cs
│ │ └── ServiceType.cs
│ ├── ObjectPool
│ │ ├── IObjectPool.cs
│ │ ├── IObjectPoolManager.cs
│ │ ├── ObjectBase.cs
│ │ ├── ObjectInfo.cs
│ │ ├── ObjectPoolBase.cs
│ │ ├── ObjectPoolManager.cs
│ │ ├── ObjectPoolManager.Object.cs
│ │ ├── ObjectPoolManager.ObjectPool.cs
│ │ └── ReleaseObjectFilterCallback.cs
│ ├── Procedure
│ │ ├── IProcedureManager.cs
│ │ ├── ProcedureBase.cs
│ │ └── ProcedureManager.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Resource
│ │ ├── ApplyResourcesCompleteCallback.cs
│ │ ├── CheckResourcesCompleteCallback.cs
│ │ ├── CheckVersionListResult.cs
│ │ ├── Constant.cs
│ │ ├── DecryptResourceCallback.cs
│ │ ├── HasAssetResult.cs
│ │ ├── ILoadResourceAgentHelper.cs
│ │ ├── InitResourcesCompleteCallback.cs
│ │ ├── IResourceGroupCollection.cs
│ │ ├── IResourceGroup.cs
│ │ ├── IResourceHelper.cs
│ │ ├── IResourceManager.cs
│ │ ├── LoadAssetCallbacks.cs
│ │ ├── LoadAssetDependencyAssetCallback.cs
│ │ ├── LoadAssetFailureCallback.cs
│ │ ├── LoadAssetSuccessCallback.cs
│ │ ├── LoadAssetUpdateCallback.cs
│ │ ├── LoadBinaryCallbacks.cs
│ │ ├── LoadBinaryFailureCallback.cs
│ │ ├── LoadBinarySuccessCallback.cs
│ │ ├── LoadBytesCallbacks.cs
│ │ ├── LoadBytesFailureCallback.cs
│ │ ├── LoadBytesSuccessCallback.cs
│ │ ├── LoadResourceAgentHelperErrorEventArgs.cs
│ │ ├── LoadResourceAgentHelperLoadCompleteEventArgs.cs
│ │ ├── LoadResourceAgentHelperParseBytesCompleteEventArgs.cs
│ │ ├── LoadResourceAgentHelperReadBytesCompleteEventArgs.cs
│ │ ├── LoadResourceAgentHelperReadFileCompleteEventArgs.cs
│ │ ├── LoadResourceAgentHelperUpdateEventArgs.cs
│ │ ├── LoadResourceProgress.cs
│ │ ├── LoadResourceStatus.cs
│ │ ├── LoadSceneCallbacks.cs
│ │ ├── LoadSceneDependencyAssetCallback.cs
│ │ ├── LoadSceneFailureCallback.cs
│ │ ├── LoadSceneSuccessCallback.cs
│ │ ├── LoadSceneUpdateCallback.cs
│ │ ├── LocalVersionList.cs
│ │ ├── LocalVersionList.FileSystem.cs
│ │ ├── LocalVersionList.Resource.cs
│ │ ├── PackageVersionList.Asset.cs
│ │ ├── PackageVersionList.cs
│ │ ├── PackageVersionList.FileSystem.cs
│ │ ├── PackageVersionList.Resource.cs
│ │ ├── PackageVersionList.ResourceGroup.cs
│ │ ├── PackageVersionListSerializer.cs
│ │ ├── ReadOnlyVersionListSerializer.cs
│ │ ├── ReadWriteVersionListSerializer.cs
│ │ ├── ResourceApplyFailureEventArgs.cs
│ │ ├── ResourceApplyStartEventArgs.cs
│ │ ├── ResourceApplySuccessEventArgs.cs
│ │ ├── ResourceManager.AssetInfo.cs
│ │ ├── ResourceManager.cs
│ │ ├── ResourceManager.LoadType.cs
│ │ ├── ResourceManager.ReadWriteResourceInfo.cs
│ │ ├── ResourceManager.ResourceChecker.CheckInfo.CheckStatus.cs
│ │ ├── ResourceManager.ResourceChecker.CheckInfo.cs
│ │ ├── ResourceManager.ResourceChecker.CheckInfo.LocalVersionInfo.cs
│ │ ├── ResourceManager.ResourceChecker.CheckInfo.RemoteVersionInfo.cs
│ │ ├── ResourceManager.ResourceChecker.cs
│ │ ├── ResourceManager.ResourceGroupCollection.cs
│ │ ├── ResourceManager.ResourceGroup.cs
│ │ ├── ResourceManager.ResourceInfo.cs
│ │ ├── ResourceManager.ResourceIniter.cs
│ │ ├── ResourceManager.ResourceLoader.AssetObject.cs
│ │ ├── ResourceManager.ResourceLoader.cs
│ │ ├── ResourceManager.ResourceLoader.LoadAssetTask.cs
│ │ ├── ResourceManager.ResourceLoader.LoadBinaryInfo.cs
│ │ ├── ResourceManager.ResourceLoader.LoadDependencyAssetTask.cs
│ │ ├── ResourceManager.ResourceLoader.LoadResourceAgent.cs
│ │ ├── ResourceManager.ResourceLoader.LoadResourceTaskBase.cs
│ │ ├── ResourceManager.ResourceLoader.LoadSceneTask.cs
│ │ ├── ResourceManager.ResourceLoader.ResourceObject.cs
│ │ ├── ResourceManager.ResourceNameComparer.cs
│ │ ├── ResourceManager.ResourceName.cs
│ │ ├── ResourceManager.ResourceUpdater.ApplyInfo.cs
│ │ ├── ResourceManager.ResourceUpdater.cs
│ │ ├── ResourceManager.ResourceUpdater.UpdateInfo.cs
│ │ ├── ResourceManager.ResourceVerifier.cs
│ │ ├── ResourceManager.ResourceVerifier.VerifyInfo.cs
│ │ ├── ResourceManager.VersionListProcessor.cs
│ │ ├── ResourceMode.cs
│ │ ├── ResourcePackVersionList.cs
│ │ ├── ResourcePackVersionList.Resource.cs
│ │ ├── ResourcePackVersionListSerializer.cs
│ │ ├── ResourceUpdateAllCompleteEventArgs.cs
│ │ ├── ResourceUpdateChangedEventArgs.cs
│ │ ├── ResourceUpdateFailureEventArgs.cs
│ │ ├── ResourceUpdateStartEventArgs.cs
│ │ ├── ResourceUpdateSuccessEventArgs.cs
│ │ ├── ResourceVerifyFailureEventArgs.cs
│ │ ├── ResourceVerifyStartEventArgs.cs
│ │ ├── ResourceVerifySuccessEventArgs.cs
│ │ ├── UnloadSceneCallbacks.cs
│ │ ├── UnloadSceneFailureCallback.cs
│ │ ├── UnloadSceneSuccessCallback.cs
│ │ ├── UpdatableVersionList.Asset.cs
│ │ ├── UpdatableVersionList.cs
│ │ ├── UpdatableVersionList.FileSystem.cs
│ │ ├── UpdatableVersionList.Resource.cs
│ │ ├── UpdatableVersionList.ResourceGroup.cs
│ │ ├── UpdatableVersionListSerializer.cs
│ │ ├── UpdateResourcesCompleteCallback.cs
│ │ ├── UpdateVersionListCallbacks.cs
│ │ ├── UpdateVersionListFailureCallback.cs
│ │ ├── UpdateVersionListSuccessCallback.cs
│ │ └── VerifyResourcesCompleteCallback.cs
│ ├── Scene
│ │ ├── ISceneManager.cs
│ │ ├── LoadSceneDependencyAssetEventArgs.cs
│ │ ├── LoadSceneFailureEventArgs.cs
│ │ ├── LoadSceneSuccessEventArgs.cs
│ │ ├── LoadSceneUpdateEventArgs.cs
│ │ ├── SceneManager.cs
│ │ ├── UnloadSceneFailureEventArgs.cs
│ │ └── UnloadSceneSuccessEventArgs.cs
│ ├── Setting
│ │ ├── ISettingHelper.cs
│ │ ├── ISettingManager.cs
│ │ └── SettingManager.cs
│ ├── Sound
│ │ ├── Constant.cs
│ │ ├── ISoundAgent.cs
│ │ ├── ISoundAgentHelper.cs
│ │ ├── ISoundGroup.cs
│ │ ├── ISoundGroupHelper.cs
│ │ ├── ISoundHelper.cs
│ │ ├── ISoundManager.cs
│ │ ├── PlaySoundDependencyAssetEventArgs.cs
│ │ ├── PlaySoundErrorCode.cs
│ │ ├── PlaySoundFailureEventArgs.cs
│ │ ├── PlaySoundParams.cs
│ │ ├── PlaySoundSuccessEventArgs.cs
│ │ ├── PlaySoundUpdateEventArgs.cs
│ │ ├── ResetSoundAgentEventArgs.cs
│ │ ├── SoundManager.cs
│ │ ├── SoundManager.PlaySoundInfo.cs
│ │ ├── SoundManager.SoundAgent.cs
│ │ └── SoundManager.SoundGroup.cs
│ ├── UI
│ │ ├── CloseUIFormCompleteEventArgs.cs
│ │ ├── IUIForm.cs
│ │ ├── IUIFormHelper.cs
│ │ ├── IUIGroup.cs
│ │ ├── IUIGroupHelper.cs
│ │ ├── IUIManager.cs
│ │ ├── OpenUIFormDependencyAssetEventArgs.cs
│ │ ├── OpenUIFormFailureEventArgs.cs
│ │ ├── OpenUIFormSuccessEventArgs.cs
│ │ ├── OpenUIFormUpdateEventArgs.cs
│ │ ├── UIManager.cs
│ │ ├── UIManager.OpenUIFormInfo.cs
│ │ ├── UIManager.UIFormInstanceObject.cs
│ │ ├── UIManager.UIGroup.cs
│ │ └── UIManager.UIGroup.UIFormInfo.cs
│ ├── Utility
│ │ ├── Utility.Assembly.cs
│ │ ├── Utility.Compression.cs
│ │ ├── Utility.Compression.ICompressionHelper.cs
│ │ ├── Utility.Converter.cs
│ │ ├── Utility.cs
│ │ ├── Utility.Encryption.cs
│ │ ├── Utility.Json.cs
│ │ ├── Utility.Json.IJsonHelper.cs
│ │ ├── Utility.Marshal.cs
│ │ ├── Utility.Path.cs
│ │ ├── Utility.Random.cs
│ │ ├── Utility.Text.cs
│ │ ├── Utility.Text.ITextHelper.cs
│ │ ├── Utility.Verifier.Crc32.cs
│ │ └── Utility.Verifier.cs
│ └── WebRequest
│ ├── Constant.cs
│ ├── IWebRequestAgentHelper.cs
│ ├── IWebRequestManager.cs
│ ├── WebRequestAgentHelperCompleteEventArgs.cs
│ ├── WebRequestAgentHelperErrorEventArgs.cs
│ ├── WebRequestFailureEventArgs.cs
│ ├── WebRequestManager.cs
│ ├── WebRequestManager.WebRequestAgent.cs
│ ├── WebRequestManager.WebRequestTask.cs
│ ├── WebRequestManager.WebRequestTaskStatus.cs
│ ├── WebRequestStartEventArgs.cs
│ └── WebRequestSuccessEventArgs.cs
├── GameFramework.sln
├── LICENSE.md
└── README.md
32 directories, 334 files
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论