# EFramework **Repository Path**: ethanxiaowu/EFramework ## Basic Information - **Project Name**: EFramework - **Description**: 自己的unity游戏框架 - **Primary Language**: C# - **License**: WTFPL - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2020-11-10 - **Last Updated**: 2025-09-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: Unity ## README # EFramework 一、概述 这是一个基于unity游戏引擎开发的游戏框架,目标是能用、好用、易用,帮助开发者快速开发游戏,达到开箱即用的目的。 框架划分为四个程序集:Entry、EFramework、GameFix、EFrameworkEditor;目的是为了更好区分各个部分的职责,与此同时,修改代码后的编译速度比起只有一个程序集时要快,减少等待时间。 下面来讲述一下四个程序集的职责划分。Entry是负责最基本游戏入口操作,这部分无法热更,一般也无需修改。EFramework是框架的Runtime部分,框架提供的基本功能都在该程序集中。GameFix是游戏业务部分,游戏业务部分都需要放入该程序集中。最后是EFrameworkEditor,是框架的Editor部分,负责在编译器中的操作部分。 二、功能特性 1. 资源 使用YooAsset作为资源管理方案,包含同步和异步加载资源方式、资源卸载、资源打包、热更新功能。打包前需要使用YooAsset提供的资源收集器进行配置,打包时选择对应平台和参数,可以打空包、小包、全包等,根据tag来进行划分,进入游戏时进行资源热更新。代码使用HybridCLR进行热更新。 2. UI 集成图片、UI组件、UI界面、UI管理器于一体的UI模块。图片使用TexturePacker工具打图集,可以一键化操作,并且生成UI界面(这里的一键化需要美术UI人员进行配合,在PS上的图片名称写入对应的参数)。UI组件包含滚动视图组件等。 3. 网络 使用Socket编写,使用Protobuf协议进行数据交互。编写Proto文件后一键式生成C#文件,前后端共用同一份。 4. 配置表 游戏中静态的配置。策划使用Excel配置,程序使用ScriptableObject存放配置,方便数据读取。检查视图内置Excel的读取、打开、写入操作,类似图集等资源,无需手动配置,使用一键写入即可生成Excel文件,还可以扩展方法,对相应的字段进行逻辑处理。 5. 事件 游戏逻辑的监听和广播处理,用于模块与模块之间的逻辑解耦。可以自定义逻辑事件,并且支持包含5个参数的传递。 6. 对象池 作为游戏中各个对象可以存放的容器,避免资源的频繁创建和销毁,提供游戏性能。支持Unity中的游戏资源对象和代码抽象类对象。 7. 时间 游戏中有大量需要处理时间的逻辑,如活动倒计时、延迟执行等。框架中提供了对时间的延时、循环操作,方便处理时间相关逻辑。 8. 场景 可以很方便加载场景资源,包含进度显示等功能。 9. 日志 分为5大日志类型,分别是:Info信息类型、Debug信息类型、Warring信息类型、Error信息类型、Fetal信息类型。根据日志开关将需要的日志类型进行打印,日志会记录当前时间、当前帧数、当前日志类型、日志内容、堆栈追踪信息,并且写入到txt文件中。 10. 本地化 根据当地进行本地化处理,包括语言、文化等。目前只提供了语言文本方面的本地化。 11. 声音 提供管理声音和声音组功能。 12. 工具 集合了很多种类工具类,如:文件和文件夹处理、游戏物体处理、路径处理、字符串处理、时间处理、UI处理等工具。