# com.gameframex.unity.setting **Repository Path**: gameframex/com.gameframex.unity.setting ## Basic Information - **Project Name**: com.gameframex.unity.setting - **Description**: GameFrameX Unity Setting component for managing game settings with persistent storage and runtime configuration - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: https://gameframex.doc.alianblank.com - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-23 - **Last Updated**: 2026-07-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
Game Frame X Logo # GameFrameX Setting [![License](https://img.shields.io/github/license/GameFrameX/com.gameframex.unity.setting)](https://github.com/GameFrameX/com.gameframex.unity.setting/blob/main/LICENSE.md) [![Version](https://img.shields.io/github/v/release/GameFrameX/com.gameframex.unity.setting)](https://github.com/GameFrameX/com.gameframex.unity.setting/releases) [![Unity Version](https://img.shields.io/badge/Unity-2019.4-black?logo=unity)](https://unity.com/) [![Documentation](https://img.shields.io/badge/Documentation-docs-blue)](https://gameframex.doc.alianblank.com) 独立游戏前后端一体化解决方案 · 独立游戏开发者的圆梦大使
[文档](https://gameframex.doc.alianblank.com) · [快速开始](#快速开始) · QQ群: 467608841 / 233840761
[English](README.md) | **简体中文** | [繁體中文](README.zh-TW.md) | [日本語](README.ja.md) | [한국어](README.ko.md)
## 语言 [English](README.md) | **简体中文** | [繁體中文](README.zh-TW.md) | [日本語](README.ja.md) | [한국어](README.ko.md) --- ## 功能特性 - 类型化键值存储:`bool`、`int`、`float`、`string`、可序列化对象(JSON) - 两种内置存储后端: - **PlayerPrefsSettingHelper**(默认)— 使用 Unity PlayerPrefs,适配抖音、微信、快手、支付宝小游戏平台 - **DefaultSettingHelper** — 基于 `Application.persistentDataPath` 的文件二进制存储 - 可插拔 Helper 架构 — 实现 `ISettingHelper` 接口即可自定义后端 - 启动时自动加载,关闭时自动保存 - 安全解析(`TryParse`)— 数据损坏时返回默认值并记录警告,不会崩溃 ## 架构概览 ``` SettingComponent (MonoBehaviour) └─ SettingManager (ISettingManager) └─ ISettingHelper ├─ PlayerPrefsSettingHelper (默认) └─ DefaultSettingHelper ``` ## 快速开始 ### 安装 选择以下任一方式: 1. 编辑 Unity 项目的 `Packages/manifest.json`,添加 `scopedRegistries` 部分: ```json { "scopedRegistries": [ { "name": "GameFrameX", "url": "https://gameframex.upm.alianblank.uk", "scopes": [ "com.gameframex" ] } ], "dependencies": { "com.gameframex.unity.setting": "1.5.2" } } ``` `scopes` 控制哪些包通过此注册表解析。只有以 `com.gameframex` 开头的包才会从这个注册表获取。 2. 直接在 `manifest.json` 的 `dependencies` 节点下添加以下内容: ```json { "com.gameframex.unity.setting": "https://github.com/gameframex/com.gameframex.unity.setting.git" } ``` 3. 在 Unity 的 `Package Manager` 中使用 `Git URL` 的方式添加库,地址为:`https://github.com/gameframex/com.gameframex.unity.setting.git` 4. 直接下载仓库放置到 Unity 项目的 `Packages` 目录下,会自动加载识别。 ### 基本使用 ```csharp // SettingComponent 添加到 GameObject 后自动可用。 // 通过 GameFramework 入口或 GetComponent 获取。 SettingComponent setting = ...; // 写入设置 setting.SetBool("FullScreen", true); setting.SetInt("ResolutionWidth", 1920); setting.SetFloat("Volume", 0.8f); setting.SetString("PlayerName", "PlayerOne"); // 持久化到存储 setting.Save(); ``` ### 读取设置 ```csharp // 带默认值回退(键不存在或值损坏时返回默认值) float volume = setting.GetFloat("Volume", 0.5f); // 检查是否存在 if (setting.HasSetting("PlayerName")) { string name = setting.GetString("PlayerName"); } ``` ### 删除设置 ```csharp setting.RemoveSetting("PlayerName"); setting.RemoveAllSettings(); ``` ### 切换存储后端 在 `SettingComponent` 的 Inspector 面板中,修改 **Setting Helper Type Name**: - `GameFrameX.Setting.Runtime.PlayerPrefsSettingHelper`(默认) - `GameFrameX.Setting.Runtime.DefaultSettingHelper`(文件存储) 也可以通过 **Custom Setting Helper** 字段指定自定义的 `ISettingHelper` 实现。 ## 平台支持 | 后端 | 标准 Unity | 抖音 | 微信 | 快手 | 支付宝 | |------|:-:|:-:|:-:|:-:|:-:| | PlayerPrefsSettingHelper | PlayerPrefs | TTStorage | WX SDK | KS SDK | Alipay SDK | | DefaultSettingHelper | 文件 I/O | 文件 I/O | 文件 I/O | 文件 I/O | 文件 I/O | ## API 参考 ### 属性 | 属性 | 类型 | 说明 | |------|------|------| | `Count` | `int` | 已存储的设置数量(PlayerPrefs 后端返回 -1) | ### 方法 | 方法 | 返回值 | 说明 | |------|--------|------| | `Load()` | `bool` | 从存储加载设置 | | `Save()` | `bool` | 保存设置到存储 | | `HasSetting(name)` | `bool` | 检查设置是否存在 | | `RemoveSetting(name)` | `bool` | 移除单个设置 | | `RemoveAllSettings()` | `void` | 清空所有设置 | | `GetAllSettingNames()` | `string[]` | 获取所有设置的键名 | | `GetBool` / `SetBool` | `bool` | 布尔类型存取 | | `GetInt` / `SetInt` | `int` | 整数类型存取 | | `GetFloat` / `SetFloat` | `float` | 浮点数类型存取(不变区域性) | | `GetString` / `SetString` | `string` | 字符串类型存取 | | `GetObject` / `SetObject` | `T` | JSON 序列化对象存取 | ## 更新日志 详见 [CHANGELOG.md](CHANGELOG.md)。 ## 依赖 | 包 | 说明 | |----|------| | `com.gameframex.unity` | 1.1.1 | ## 文档与资源 - [官方文档](https://gameframex.doc.alianblank.com) ## 社区与支持 - QQ群: 467608841 / 233840761 ## 开源协议 双重许可:[MIT](LICENSE.md) 和 [Apache-2.0](LICENSE.md)。