介绍

制作平台 选择主流 unity。

数据的配置项方法,

调研结论

在Unity项目中,游戏数据的配置项通常使用以下几种方式:

1. ScriptableObject

  • 优点:直观、易于编辑和管理,可以在编辑器中直接创建和修改。

  • 用法:创建一个继承自`ScriptableObject`的类,并通过Unity编辑器创建该类的实例。

  • 示例

     [CreateAssetMenu(fileName = "GameConfig", menuName = "Config/GameConfig")]

     public class GameConfig : ScriptableObject

     {

         public int playerHealth;

         public float playerSpeed;

         public string gameName;

     }

2. JSON/XML文件

  • 优点:易于阅读和编辑,特别适合存储大规模的配置数据,可以方便地进行版本控制。

  • 用法:将配置数据存储在JSON或XML文件中,并在运行时通过代码读取这些文件。

  • 示例

[System.Serializable]
public class GameConfig
{
    public int playerHealth;
    public float playerSpeed;
    public string gameName;
}

public class ConfigLoader : MonoBehaviour
{
    public string configFilePath = "config.json";

    void Start()
    {
        LoadConfig();
    }

    void LoadConfig()
    {
        string json = System.IO.File.ReadAllText(configFilePath);
        GameConfig config = JsonUtility.FromJson<GameConfig>(json);
        Debug.Log("Player Health: " + config.playerHealth);
    }
}

3. PlayerPrefs

  • 优点:适用于存储少量的用户设置和偏好数据,易于使用。

  • 缺点:不适合存储大量数据或复杂的配置项。

  • 用法:使用`PlayerPrefs`类来存储和读取数据。

  • 示例

// 保存数据
PlayerPrefs.SetInt("PlayerHealth", 100);
PlayerPrefs.SetFloat("PlayerSpeed", 5.5f);
PlayerPrefs.SetString("GameName", "MyGame");

// 读取数据int playerHealth = PlayerPrefs.GetInt("PlayerHealth", 100); // 默认值为100float playerSpeed = PlayerPrefs.GetFloat("PlayerSpeed", 5.0f); // 默认值为5.0string gameName = PlayerPrefs.GetString("GameName", "DefaultGame"); // 默认值为DefaultGame

4. 数据库

  • 优点:适合需要存储和管理大量数据的情况,特别是需要频繁读取和写入数据的游戏。

  • 用法:可以使用SQLite、MySQL等数据库,并通过C#代��进行数据操作。

  • 示例:使用SQLite数据库管理游戏数据。

5. YAML文件

  • 优点:人类可读性好,适合配置文件。

  • 用法:将配置数据存储在YAML文件中,并在运行时通过代码读取这些文件。

  • 示例:使用第三方库如`YamlDotNet`来解析YAML文件。

结论

  • 面向游戏开发 App 数据使用 Json数据结构,保存于游戏

App 中 临时产生的数据,保存在本地 Json格式。可实时热读取。

并在特定时间节点,数据上传到后端 api。

后端使用 数据库 承接数据 并永久保存。

适合的数据为 角色等级,名字,金币数量等。

  • 面向游戏策划 使用 Excel 结构 易于编辑,阅读。并开发一键导出为 Json 功能。

导出 Json格式数据,用于unity读取。

可以热加载数据。添加新数据一键导出后,unity自动读取。