Unity之Luban使用流程

数据类和数据文件创建

  1. 创建excel表格,填充数据;
  2. 使用Luban工具生成数据类和数据文件;
    Code Target:c cs-newtonsoft-json
    Data Target:d json
    注意 :Code Target: cs-simple-json在Unity2021.3.45f2c1会出现错误
    升级luban工具可以解决这个问题
  3. 数据类放到项目中;数据文件放在指定文件夹中。

运行时使用

数据文件:放置在Assets/StreamingAssets/Luban中

数据:

csharp 复制代码
[
  {
    "id": 1001,
    "name": "道具1",
    "desc": "描述1",
    "count": 10
  },
  {
    "id": 1002,
    "name": "道具2",
    "desc": "描述2",
    "count": 100
  }
]

加载数据,遍历表中数据

item类描述数据,TbItem管理表中所有的item,类似容器

csharp 复制代码
using System;
using System.IO;
using Newtonsoft.Json.Linq;
using UnityEngine;
public class TestLuban : MonoBehaviour
{
    void Awake()
    {
        //加载配置
        //所有配置文件放置在Assets/StreamingAssets/Luban文件夹中,没有子文件夹
        Func<string, JArray> loader = (fileName) =>
        {
            //拼接文件路径
            string path = Path.Combine(
            Application.streamingAssetsPath,
            "Luban",
            fileName + ".json");
            string jsonText = File.ReadAllText(path);
            return JArray.Parse(jsonText);
        };

        var tables = new cfg.Tables(loader);

        //使用配置
        //每个数据类有一个对应Tb类管理
        //所有表的管理器 获取对应的表管理器 获取表中对应数据类的所有对象
        var items = tables.Tbitem.DataList;
        foreach (var item in items)
        {
            Debug.Log(item);
        }
    }
}
相关推荐
tealcwu1 小时前
【Unity高级】Unity URP:构建同时支持 2D 与 3D 场景的项目完全指南
3d·unity·游戏引擎
淡海水6 小时前
10-01-互操作-C#与C++边界的内存管理
unity·c#·游戏引擎·.netcore·gc
小小数媒成员8 小时前
UGUI原理(一)
开发语言·游戏·unity·游戏引擎
暴走约伯9 小时前
【VFX工具链源码拆解 04】拯救丢失的绑定:Timeline 一键克隆与层级相对路径重映射算法
unity·c#·游戏引擎·硬件工程
小小数媒成员11 小时前
Unity UGUI布局组件(LayoutGroup、ContentSizeFitter、LayoutElement)详解
unity·游戏引擎
tealcwu11 小时前
【Unity基础】Unity输入与Time.deltaTime的使用原则
unity·游戏引擎
chen_22721 小时前
godot做仪表hmi
游戏引擎·godot
郝学胜-神的一滴1 天前
AI 编程智能体 22:解析器赋能与实战落地全指南
人工智能·程序人生·游戏·unity·游戏引擎
BuHuaX1 天前
Lua 与 ToLua:运行机制及热更新原理
开发语言·unity·junit·c#·lua
Solange__2 天前
在线3D预览器、Blender和游戏引擎怎么选?按5类任务比较格式、隐私与编辑性
人工智能·游戏·3d·游戏引擎·blender·1024程序员节·关卡设计