SaveGameFree Web 存档教程:SaveGameWeb 实现游戏云端进度同步

📅 2026/8/18 14:39:32
SaveGameFree Web 存档教程:SaveGameWeb 实现游戏云端进度同步
SaveGameFree Web 存档教程SaveGameWeb 实现游戏云端进度同步【免费下载链接】SaveGameFreeSave Game Free is a free and simple but powerful solution for saving and loading game data in unity.项目地址: https://gitcode.com/gh_mirrors/sa/SaveGameFreeSaveGameFree 是一款免费、简单但功能强大的 Unity 游戏存档插件而SaveGameWeb正是它内置的 Web 存档组件专门用于实现游戏云端进度同步。本教程将手把手带你完成 SaveGameWeb 的配置、存档上传下载与加密设置即使你是 Unity 新手也能快速上手让玩家换设备也能无缝继续游戏进度。SaveGameFree Unity 云端存档 SaveGameWeb 教程宣传图SaveGameWeb 是什么为什么你的游戏需要云端存档传统的SaveGame.Save只会把存档写入本地磁盘玩家换手机、清缓存后进度就没了。SaveGameWeb 则把存档通过 HTTP 请求发送到你的服务器实现真正的云端进度同步。它的核心能力包括☁️ 通过SaveT上传存档到服务器支持任意可序列化对象 通过DownloadLoadT拉取并还原云端存档 内置SaveGameSimpleEncoder加密防止存档被篡改 基于UnityWebRequest兼容 WebGL、移动端与桌面端准备工作获取插件与部署服务器端脚本使用 SaveGameWeb 前你需要两样东西Unity 插件本体以及一个支持 PHP 的服务器用于接收存档请求。克隆仓库https://gitcode.com/gh_mirrors/sa/SaveGameFree找到插件自带的服务端脚本位于Assets/BayatGames/SaveGameFree/Web/Save Game Free - Web.zip解压后即可看到savegamefree.php将 PHP 脚本上传到你的服务器虚拟主机、宝塔面板等均可并记下访问地址 示例场景Assets/BayatGames/SaveGameFree/Samples~/Save Web/ExampleSaveWeb.cs中使用的地址格式是http://你的域名/savegamefree.php。SaveGameWeb 核心参数快速认识SaveGameWeb的构造方法支持链式扩展从最简单的用户名到完整配置共 8 个可选参数参数作用默认值username/password服务器身份校验savegamefree/ 内置默认密码url服务器脚本地址http://www.example.comencode是否加密存档falseencodePassword加密密钥内置默认密钥serializer序列化格式JSON/XML/BinaryJSONencoder加密算法SaveGameSimpleEncoder⚠️上线前务必修改默认的用户名、密码和加密密钥示例代码中的默认值仅用于本地演示。三步完成 SaveGameWeb 云端存档上传在 Unity 中创建脚本按下面三步即可完成一次存档上传using System.Collections; using UnityEngine; using Bayat.Unity.SaveGameFree; using Bayat.Unity.SaveGameFree.Types; public class CloudSaveDemo : MonoBehaviour { public Transform player; public string url http://你的域名/savegamefree.php; public void SaveToCloud() { StartCoroutine(SaveRoutine()); } IEnumerator SaveRoutine() { SaveGameWeb web new SaveGameWeb(我的用户名, 我的密码, url, true, 我的密钥); yield return StartCoroutine(web.SaveVector3Save(playerPos, player.position)); } }保存成功后Console 会输出Data successfully saved.此时存档已写入服务器。SaveGameWeb 下载与读取云端存档的快捷方法读取存档需要两步先用Download从服务器拉取数据再用LoadT反序列化还原IEnumerator LoadRoutine() { SaveGameWeb web new SaveGameWeb(我的用户名, 我的密码, url, true, 我的密钥); yield return StartCoroutine(web.Download(playerPos)); player.position web.LoadVector3Save(playerPos, Vector3.zero); }几点经验Download是协程方法必须用yield return等待完成LoadT是同步方法要在Download结束后调用第二个参数是默认值服务器上没有该存档时自动回退不会报错给云端存档加一道锁Encode 加密配置方法当构造方法的encode参数为true时上传前数据会被SaveGameSimpleEncoder加密下载后会自动解密。这样即使服务器数据泄露攻击者也无法直接读取存档内容。加密状态必须一致上传时加密下载时也必须加密加密密钥建议使用高强度随机字符串不要与密码相同更安全的做法在SaveGameWeb.cs源码中修改DefaultEncodePassword或在运行时统一配置错误处理与调试技巧网络请求难免失败SaveGameWeb 提供了两个属性帮助你定位问题web.IsError布尔值表示本次请求是否出错web.Error详细的错误描述字符串常见排查思路请求失败 → 检查服务器地址是否可达、PHP 脚本是否部署成功数据为空 → 确认identifier存档标识在上传下载时完全一致响应以Error开头 → 通常是服务器端返回了错误信息可查看 PHP 脚本的返回逻辑常见问题 FAQQWebGL 平台能用 SaveGameWeb 吗可以。它基于UnityWebRequest实现跨平台表现稳定还支持跨域配置服务器需允许 CORS。QSaveGameWeb 和 SaveGame 有什么区别SaveGame存本地SaveGamePath指定路径SaveGameWeb存服务器二者可以结合使用本地做缓存、云端做同步。Q不想加密可以吗可以把构造方法的encode设为false即可适合存档内容不敏感的场景。结语从本地存档走向云端同步SaveGameWeb 用极低的接入成本为你的 Unity 游戏带来了完整的云端进度同步能力。建议你直接打开示例场景Assets/BayatGames/SaveGameFree/Samples~/Save Web/Save Web.unity体验完整流程再对照源码Assets/BayatGames/SaveGameFree/Runtime/SaveGameWeb.cs深入理解实现细节。从今天起让玩家的进度永不丢失【免费下载链接】SaveGameFreeSave Game Free is a free and simple but powerful solution for saving and loading game data in unity.项目地址: https://gitcode.com/gh_mirrors/sa/SaveGameFree创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考