介绍
制作平台 选择主流 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自动读取。