1.使用GDE Editor输入您的游戏数据

  • 首先,用Define Data窗口来创建一个schema

  • 二, 用创建数据窗口创建数据项

2. 包括GameDataEditor namespace

包括GameDataEditor namespace在任何您将访问GDE.的源文件的顶部。

using GameDataEdtor;

3. 初始化Game Data Manager

GDEDataManager.Init("gde_data");

这个文件的位置是在Preferences窗口中设置Game Data Editor in Unity under Window→Game Data Editor→ 偏好设置的下拉菜单.

4. 在运行时访问您的数据

在这个例子中,假设你的”Arrok”项目看起来是这样的:

像这样访问项目“Arrok”:

Dictionary<string, object> data = null;
GDEDataManager.Get("Arrok", out data);


获取单个字段
像这样读取基本项目领域:

string name;
int baseHP;
int baseMana;
int baseAP;

//数据是为 "Arrok" 项 保存数据的dictionary data.TryGetString("name", out name); data.TryGetInt("base_hit_points", out baseHP); data.TryGetInt("base_mana", out baseMana); data.TryGetInt("base_attack_power", out baseAP);


获取自定义项目
在这个例子中,假设你的”LeatherTunic”项目看起来是这样的

像这样读取 Arrok’s Chest Armor 数据 (the Leather Tunic)

string chestArmorID = "";
data.TryGetString("chest", out chestArmorID);

Dictionary<string, object> chestArmorData = null;
GDEDataManager.Get(chestArmorID, out chestArmorData);

//现在,你可以从数据读取chest项目数据,就像你从任何其他项目读取一样。
float defenseDelta;
customItemData.TryGetFloat("defense_delta", out defenseDelta);


Get a List of Custom Items

List<string> inventoryKeyList = null;
data.TryGetStringList("inventory", out inventoryKeyList)

//这个循环将读取每个项目的库存数据
//即在Arrok的库存字段中指定
foreach(string inventoryKey in inventoryKeyList)
{
    Dictionary<string, object> inventoryData = null;
    GDEDataManager.Get(inventoryKey, out inventoryData);

    //现在库存项目的数据在库存dictionary中加载
    //现在,您可以在你的游戏逻辑中使用它
}


5. 支持的数据类型

  // bool
  bool boolVariable;
  List<bool> boolListVariable;
  data.TryGetBool("my_bool", out boolVariable);
  data.TryGetBoolList("my_bool_list", out boolLitVariable);

  // int
  int intVariable;
  List<int> intListVariable;
  data.TryGetInt("my_int", out intVariable);
  data.TryGetIntList("my_int_list", out intListVariable);

  // float
  float floatVariable;
  List<float> floatListVariable;
  data.TryGetFloat("my_float", out floatVariable);
  data.TryGetFloatList("my_float_list", out floatListVariable);

  // string
  string stringVariable;
  List<string> stringListVariable;
  data.TryGetString("my_string", out stringVariable);
  data.TryGetStringList("my_string_list", out stringListVariable);

  // Vector2
  Vector2 vector2Variable;
  List<Vector2> vector2ListVariable;
  data.TryGetVector2("my_vec2", out vector2Variable);
  data.TryGetVector2List("my_vec2_list", out vector2ListVariable);

  // Vector3
  Vector3 vector3Variable;
  List<Vector3> vector3ListVariable;
  data.TryGetVector3("my_vec3", out vector3Variable);
  data.TryGetVector3List("my_vec3_list", out vector3ListVariable);

  // Vector4
  Vector4 vector4Variable;
  List<Vector4> vector4ListVariable;
  data.TryGetVector4("my_vec4", out vector4Variable);
  data.TryGetVector4List("my_vec4_list", out vector4ListVariable);

  // Color
  Color colorVariable;
  List<Color> colorListVariable;
  data.TryGetColor("my_Color", out colorVariable);
  data.TryGetFloatColor("my_Color_list", out colorListVariable);


6. 就是这样!

如果你有问题,你可以在论坛上发布消息 或者给我发邮件.