Skip to content

主要存放一些unity工具类, 随拿随用的工具性代码 , 便利性代码 ,不定时更新 , 有问题联系我 295536722@qq.com

Notifications You must be signed in to change notification settings

startgis/UnityUtils

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UnityUtils 项目简介

UnityUtils 是一套面向 Unity 引擎开发者的高效实用工具集,旨在提升开发效率、规范项目结构、简化常见功能实现。项目包含大量常用静态工具方法、组件化设计、状态机、协程管理、事件系统等模块,适用于各类游戏及应用开发场景。

数据序列化(DataSerialization )

一个基于策略模式、可扩展的 Unity 数据序列化框架。系统专注“数据格式转换”,彻底移除了文件读写能力,可与任意存储/网络层自由组合。

  • 支持格式:JSON / XML / Binary / CSV
  • 统一入口:SerializationManager
  • 单一职责:仅序列化与反序列化,不做文件 I/O
  • 可扩展:运行时注册自定义策略,支持延迟初始化
  • Json依赖LitJson

上下文(Context )

  • 用于管理应用程序中的全局对象和资源
  • 支持类型键和字符串键两种存储方式

自动 UI 代码生成工具(UnityUtils/GeneratedUITool)

本工具用于基于 UI 预制体自动生成访问脚本,避免手写查找与拖拽,支持单文件可重生成、序列化引用赋值、命名空间与基类包装、批量工作流等。

  • 自动生成 UI 访问脚本(单文件,重复生成仅覆盖标记段,保留 using 与用户代码)
  • 支持 UIMark 标记导出目标:组件/RectTransform/GameObject/Auto,支持忽略子级与组件索引
  • 自动包含常用控件(Button/Toggle/Slider/InputField/TMP),可扩展包含 ScrollRect/Scrollbar/Dropdown
  • 两种“生成与赋值”模式: 方法赋值:生成 public void InitRefs();把查找逻辑放入该方法,需你在合适时机手动调用 序列化引用:生成 [SerializeField] 字段并在编辑器中写引用(无需运行时查找)
  • 支持命名空间包装与自定义基类(默认 MonoBehaviour)
  • 统一的命名与属性生成:_camelCase、组件前缀映射、属性名去前缀(可选)

反射缓存工具(ReflectionToolkit)

对 反射相关的高频操作(类型查找、MethodInfo/PropertyInfo/字段/特性/委托解析等)提供预加载,缓存,清理等一些列功能,方便之后快速调用

  • 可观测:统一统计结构(命中率 / 内存使用 / 使用频率 / 清理结果)
  • 可扩展:模块化 ICacheModule,策略化 ICleanupStrategy,可插拔
  • 自适应:全局策略组合 + 模块内部 OnSmartCleanup 双层裁剪
  • 可维护:统一入口 ReflectionToolkit,分层清晰(Core / Interfaces / Modules / Strategies)
  • 可控内存:LRU / 使用频率 / 内存压力 / 定时 / 自适应 多策略叠加

协程管理与策略工具(CoroutineManager)

  • 支持高性能协程池化,批量管理/命名/分类/自动清理协程
  • 丰富的策略模式(如分帧处理、条件等待、链式编排、动画插值等)
  • 可与主工程无缝集成,极大提升复杂流程与动画控制的效率与可维护性
  • 支持链式流程、进度回调、调试与性能监控等高级用法

状态管理系统(StatusManagementSystem)

  • 灵活的状态机架构,支持延迟加载、状态切换验证、历史记录、事件监听等
  • 内置调试与性能监控工具,便于开发、测试与维护
  • 适合角色AI、流程状态、UI状态等多种场景

事件系统(EventSystem)

  • 统一的全局事件派发与监听机制,支持广播、订阅、反订阅
  • 支持强类型/弱类型事件,泛型事件参数,类型安全
  • 事件队列、优先级、一次性事件、持久事件等扩展用法
  • 适合解耦模块间通信,UI、逻辑、动画、网络等各类场景

流式加载器(StreamingAssetsLoader)

流式加载器(StreamingAssetsLoader)是一个针对 Unity 项目 StreamingAssets 目录的资源加载工具。

  • 支持同步与异步加载 StreamingAssets 目录下的文件和数据
  • 兼容各主流平台(如 Windows、Android、iOS 等)
  • 封装了常用的字节流、文本、JSON 等加载方式,简化资源获取流程

计时器(TimerManager)

计时器(TimerManager)提供高效灵活的计时器及定时任务管理功能。

  • 支持单次/循环定时回调、倒计时、延时执行等
  • 支持任务动态暂停、恢复、移除、查询剩余时间
  • 性能优良,适合用于 UI 倒计时、技能冷却、动画延迟、定时触发等场景

常用工具

  • TweenUtils 补间动画工具类:实现对象属性的平滑过渡
  • CollisionUtils 碰撞检测工具类:提供各种碰撞检测算法,便于物理相关开发
  • PathfindingUtils 路径查找工具类:支持基于 NavMesh 和 A* 算法的路径查找
  • ImageUtils 图像处理工具类:图片的加载、保存、格式转换、截图等功能
  • AudioUtils 音频处理工具类VideoUtils 视频处理工具类:便捷实现音频和视频相关操作
  • ClipboardUtils 剪贴板工具类:实现跨平台剪贴板操作
  • DeviceUtils 设备信息工具类:获取设备硬件、系统等相关信息
  • RegexUtils 正则表达式工具类:方便字符串匹配及处理
  • FileUtils 文件工具类:封装常用文件操作
  • UIUtils UI 工具类:简化 UI 各类操作,包括显示、动画、交互等
  • DebugLogger 调试工具类:统一调试日志输出,支持详细日志与异常捕捉
  • RandomUtils、MathUtils、GameObjectUtils:常用数学运算、随机数生成、游戏对象管理等

目录结构预览

Assets
/GeneratedUITool             # UI脚本自动生成工具,自动绑定
/Scripts/
  ├─ Base/                   # 基础架构与单例模板
  ├─ Utils/                  # 常用工具类(动画、碰撞、路径、图片、UI等)
  ├─ CoroutineManager/       # 协程管理与策略工具
  ├─ StatusManagementSystem/ # 状态管理系统相关
  ├─ EventSystem/            # 事件系统相关
  ├─ StreamingAssetsLoader/  # 流式加载器相关
  ├─ ReflectionToolkit/      # 反射缓存工具
  ├─ Context /               # 上下文管理
  ├─ DataSerialization /     # 数据序列化
  └─ TimerManager/           # 计时器相关


使用方式

直接将本工具集源码引入你的项目,在 C# 脚本中按需静态调用相关类和方法即可。详细 API 及用法请参考各工具类源码及注释。
本工程几乎纯代码,可以选择需要的工具添加到您的工程当中.


如有建议或需求欢迎 issue 与 PR!
项目地址:zhxx19940127/UnityUtils

About

主要存放一些unity工具类, 随拿随用的工具性代码 , 便利性代码 ,不定时更新 , 有问题联系我 295536722@qq.com

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 93.1%
  • ShaderLab 5.9%
  • HLSL 1.0%