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

Posted Learner_Gao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity实用插件功能SaveGameFree存档系统相关的知识,希望对你有一定的参考价值。

 【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的做个RPG游戏怎么实现存档功能,能说说大概的思路嘛?

有一个存档点,或者通过UI点击。然后把玩家所在的场景名字,位置,玩家的属性,道具等全部写到一个文件中,或者unity可以使用PlayerPrefs来保存
在读取的时候,先读取文件,然后游戏按照对应的数据开始运转追问

怎么写到一个文件中

需要些什么知识

参考技术A 我业余的 答的不一定对 我的思路是把你当前的位置 物品等信息存成一个json或者xml格式的文本文件 读档的时候把文本转换成字典类 然后读取位置和物品 载入相关的scene 然后根据读到的值设置你的player就行了 参考技术B 如果需要存档的数据较少,可以用playerpref。如果较多,会数据库可以用SQLite, 比较灵活。也可以用json,xml甚至普通的txt都行。json和xml掌握了它们的语法就行。txt只要了解文件读写的API就行。 参考技术C 先说说你自己的思路

以上是关于Unity实用插件功能SaveGameFree存档系统的主要内容,如果未能解决你的问题,请参考以下文章

Unity实用插件篇 ✨ | 游戏中的求概率插件WeightedRandomization加权随机化算法

2019年4月份整理的Unity3D 20个实用插件-免费下载

unity的做个RPG游戏怎么实现存档功能,能说说大概的思路嘛?

Unity 实用工具✨| Unity 十款 浏览器相关插件 整理(web view / browser)

[Unity3D插件]FingerGesture的简单实用

使用 7zip 命令行实用程序解密加密的 7zip 存档文件