Lưu và tải dữ liệu bằng JSON (Newtonsoft)

Tags:
Data Persistence
Saving
JSON
Newtonsoft

C# Code

using UnityEngine;
using Newtonsoft.Json;
using System.IO;

public class GameData
{
    public string playerName;
    public int score;
    public float health;
}

public class JsonSavingExample : MonoBehaviour
{
    private string savePath;

    void Awake()
    {
        savePath = Path.Combine(Application.persistentDataPath, "gamedata.json");
    }

    public void SaveGame()
    {
        GameData data = new GameData
        {
            playerName = "PlayerOne",
            score = 1000,
            health = 95.5f
        };

        string json = JsonConvert.SerializeObject(data, Formatting.Indented);
        File.WriteAllText(savePath, json);
        Debug.Log("Game data saved to: " + savePath);
    }

    public void LoadGame()
    {
        if (File.Exists(savePath))
        {
            string json = File.ReadAllText(savePath);
            GameData data = JsonConvert.DeserializeObject<GameData>(json);
            Debug.Log("Game data loaded:");
            Debug.Log("Player Name: " + data.playerName);
            Debug.Log("Score: " + data.score);
            Debug.Log("Health: " + data.health);
        }
        else
        {
            Debug.LogWarning("Save file not found at: " + savePath);
        }
    }
}

Sử dụng thư viện Newtonsoft.Json (Json.NET) để serialize và deserialize đối tượng C# thành chuỗi JSON, sau đó lưu vào tệp. Đây là một cách mạnh mẽ và linh hoạt để quản lý dữ liệu phức tạp. Yêu cầu đã cài đặt gói 'com.unity.newtonsoft-json'.

Bình luận (0)

Bạn cần đăng nhập để có thể bình luận.

Chưa có bình luận nào. Hãy là người đầu tiên!

Bài viết liên quan

Một cách đơn giản để lưu trữ dữ liệu người chơi như điểm số, cài đặt... PlayerPrefs phù hợp cho các dữ liệu nhỏ và không yêu cầu bảo mật cao.

Data Persistence
Saving
PlayerPrefs

Tự động kích hoạt việc lưu game khi người chơi đi vào một khu vực được chỉ định (Trigger). Chỉ lưu một lần mỗi khi vào vùng.

Gameplay
Saving
Data Persistence
Trigger

Cung cấp chức năng cho người chơi chụp lại khoảnh khắc trong game và lưu thành tệp PNG vào một thư mục được chỉ định.

Utility
Input
Mobile
Saving

Một hệ thống để tặng quà cho người chơi khi họ đăng nhập mỗi ngày, sử dụng PlayerPrefs để theo dõi thời gian đăng nhập cuối cùng.

Gameplay
Saving
Daily Reward
Timer

Sử dụng ScriptableObject để tạo các asset dữ liệu có thể tái sử dụng, giúp quản lý cấu hình cho vật phẩm, kẻ địch hoặc các cài đặt game một cách linh hoạt và độc lập với scene.

Data Persistence
Architecture
ScriptableObject
Optimization