草庐IT

【Unity实用插件功能】SaveGameFree存档系统

Learner_Gao 2023-04-05 原文

 【1】什么是SaveGameFree?

它是一种可以通过JSON、XML和二进制格式来进行游戏数据储存的便捷工具,并且你可以通过使用加密算法来保证这些数据的安全性,以防作弊或者黑客行为。

插件地址:Save Game Free - Gold Update | 输入管理 | Unity Asset Store

特征:

● 跨平台:支持所有平台

● 网页和云端:保存数据到你的服务器上,也可以从服务器读取出来

● 加密:加密:使用最安全的算法进行加密‎

●‎ 自动保存:自动保存游戏对象数据‎

● 开源

【2】基础保存和加载

该插件提供了简单而一致的API,可让您轻松保存和加载数据。‎

保存一个 integer 数据类型:

SaveGame.Save<int>("score", score);

加载一个integer 数据类型:

int score = SaveGame.Load<int>("score");

‎以下是“免费保存游戏”的一个简单示例,用于保存和加载数据:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
using BayatGames.SaveGameFree;
 
public class SimpleUsage : MonoBehaviour {
 
    public int score;
 
    void Start () {
 
        // Saving the data
        SaveGame.Save<int> ( "score", score );
    }
 
}

‎如您所见,我们可以使用 SaveGame API 轻松保存和加载游戏数据,现在让我们保存一个简单的字符串值:‎

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
using BayatGames.SaveGameFree;
 
public class SimpleUsage : MonoBehaviour {
 
    public string username;
 
    void Start () {
 
        // Saving the data
        SaveGame.Save<string> ( "username", username );
    }
 
}

‎保存一个数据集合:‎

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
using BayatGames.SaveGameFree;
 
public class SimpleUsage : MonoBehaviour {
 
    void Start () {
        Dictionary<string, int> playerScores = new Dictionary<string, int> ();
        playerScores.Add ( "John", 100 );
        playerScores.Add ( "Jack", 200 );
 
        // Saving the data
        SaveGame.Save<Dictionary<string, int>> ( "playerScores", playerScores );
    }
 
}

保存一个自定义数据类

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
using BayatGames.SaveGameFree;
 
public class SimpleUsage : MonoBehaviour {
 
    public class PlayerData {
        public int score;
        public string name;
    }
 
    void Start () {
        PlayerData data = new PlayerData ();
        data.score = 453;
        data.name = "John";
 
        // Saving the data
        SaveGame.Save<PlayerData> ( "playerData", data );
    }
 
}

【3】脚本API

脚本API示例
API示例

SaveGame.Save

保存简单数据 

SaveGame.Save<string> ( "simple.txt", "Simple Data" );

保存数组 

string[] names = new string[] { "John", "James", "Kyle" };
SaveGame.Save<string[]> ( "names.txt", names );

SaveGame.Load

加载简单数据

// Loading by Generic
string simple = SaveGame.Load<string> ( "simple.txt", "The Default Value" );
 
// Loading by Type
string simple = ( string )SaveGame.Load ( "simple.txt", typeof ( string ), "The Default Value" );

加载数组

// Loading by Generic
string[] names = SaveGame.Load<string[]> ( "names.txt" );
 
// Loading by Type
string[] names = ( string[] )SaveGame.Load ( "names.txt", typeof ( string[] ) );

SaveGame.Delete

SaveGame.Delete ( "simple.txt" );

SaveGame.Exists

Simple Checking

bool exists = SaveGame.Exists ( "simple.txt" );

SaveGame.Clear

SaveGame.Clear ();

SaveGame.GetFiles

从主目录中检索文件

FileInfo[] files = SaveGame.GetFiles ();

从目录中检索文件

FileInfo[] files = SaveGame.GetFiles ( "myFolder" );

有关【Unity实用插件功能】SaveGameFree存档系统的更多相关文章

  1. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  2. ruby - 如何每月在 Heroku 运行一次 Scheduler 插件? - 2

    在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/

  3. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  4. ruby-on-rails - Cucumber 是否只是 rspec 的包装器以帮助将测试组织成功能? - 2

    只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您

  5. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  6. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  7. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  8. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  9. unity---接入Admob - 2

    目录1.AdmobSDK下载地址2.将下载好的unityPackagesdk导入到unity里​编辑 3.解析依赖到项目中

  10. Unity 3D 制作开关门动画,旋转门制作,推拉门制作,门把手动画制作 - 2

    Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u

随机推荐