当前位置: 首页 > news >正文

LisJson解析配置表

每日一句:南来北往,不辜负生活,不迷失方向

[{
        "ID": 0,
        "Name": "SmallPeople",
        "InitHealth": 100,
        "CostGold": 0,
        "MoveSpeed": 1.75,
        "InitWeapon": "#0#",
        "BaseATK": 0
    },
    {
        "ID": 1,
        "Name": "Test",
        "InitHealth": 999,
        "CostGold": 0,
        "MoveSpeed": 2,
        "InitWeapon": "#1#2#3",
        "BaseATK": 999
    }

]

public class CharacterBaseData
{
    public int ID;
    public string Name;
    public int InitHealth;
    public int CostGold;
    public float moveSpeed;
    public int baseATk;
    public List<int> InitWeapons;


    public CharacterBaseData(int iD, string name, int initHealth, int costGold, float moveSpeed, int atk, List<int> initWeapons)
    {
        ID = iD;
        Name = name;
        InitHealth = initHealth;
        CostGold = costGold;
        this.moveSpeed = moveSpeed;
        baseATk = atk;
        InitWeapons = initWeapons;
    }
}

using LitJson;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    public Dictionary<int, CharacterBaseData>
        CharacterDic = new Dictionary<int, CharacterBaseData>();
    private void Start()
    {
        ReadCharacterBaseDataFromConfig();
    }
    private void ReadCharacterBaseDataFromConfig()
    {
        CharacterDic.Clear();

        //读取资源
        TextAsset asset = Resources.Load<TextAsset>(Config.CharacterBaseDataPath);
        if (asset != null)
        {
            //获取字符串信息
            string temp = asset.ToString();
            // Debug.Log(temp);
            JsonData data = JsonMapper.ToObject(temp);
            //Debug.Log(data.Count);


            for (int i = 0; i < data.Count; i++)
            {
                Debug.Log("data.Count"+data.Count);


                int id = int.Parse(data[i]["ID"].ToString());
                string name = data[i]["Name"].ToString();
                int initHealth = int.Parse(data[i]["InitHealth"].ToString());
                int costGold = int.Parse(data[i]["CostGold"].ToString());
                float moveSpeed = float.Parse(data[i]["MoveSpeed"].ToString());
                int atk = int.Parse(data[i]["BaseATK"].ToString());
                Debug.Log("id" + id + ":                  " + "name" + name + ":                  " + "initHealth" + initHealth +
                    ":                  " + "costGold" + costGold + ":                  " + "moveSpeed" + moveSpeed + ":                  " + "atk" + atk);

              //列表切分
                string tempStr = data[i]["InitWeapon"].ToString();

                List<int> list = new List<int>();
                //字符串切分
                string[] numbersArray = tempStr.Split('#');
                
                //对每个字符尝试转换
                foreach (var number in numbersArray)
                {
                 
                    int parseNumber;
                    if (int.TryParse(number, out parseNumber)) //int.TryParse(string s, out int i) 的参数: s是要转换的字符串,i 是转换的结果
                    {
                        Debug.Log("parseNumber" + parseNumber);


                        list.Add(parseNumber);
                    }

                }

                CharacterBaseData characterBaseData = new CharacterBaseData(id, name, initHealth, costGold, moveSpeed, atk, list);
                Debug.Log("characterBaseData:"+characterBaseData.Name);

                CharacterDic.Add(id, characterBaseData);   
            }

        }
    }
}
 

相关文章:

LisJson解析配置表

每日一句&#xff1a;南来北往&#xff0c;不辜负生活&#xff0c;不迷失方向 [{ "ID": 0, "Name": "SmallPeople", "InitHealth": 100, "CostGold": 0, "MoveSpeed": 1…...

剑指offer10.斐波那契数列(动态规划)

写一个函数&#xff0c;输入 n &#xff0c;求斐波那契&#xff08;Fibonacci&#xff09;数列的第 n 项&#xff08;即 F(N)&#xff09;。斐波那契数列的定义如下&#xff1a; F(0) 0, F(1) 1 F(N) F(N - 1) F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始&#x…...

HarmonyOS实战开发-WebSocket的使用。

介绍 本示例展示了WebSocket的使用&#xff0c;包括客户端与服务端的连接和断开以及客户端数据的接收和发送。 WebSocket连接&#xff1a;使用WebSocket建立服务器与客户端的双向连接&#xff0c;需要先通过createWebSocket方法创建WebSocket对象&#xff0c;然后通过connect…...

【前缀合】Leetcode 连续数组

题目解析 525. 连续数组 寻找一个子数组&#xff0c;这个子数组中包含相同数目的0和1&#xff0c;但是这个子数组需要最长的 算法讲解 只需在[0,i]寻找一段区间使得这一段区间的和也等于sum即可 细节问题&#xff1a;1. 这里的哈希表的value存的是下标&#xff0c;因为需要找…...

一些优雅的算法(c++)

求最大公约数&#xff1a;辗转相除法 int gcd(int a,int b){return b0?a:gcd(b,a%b); }求最小公倍数&#xff1a;两整数之积除以最大公约数 int lcm(int a, int b){return a*b / gcd(a, b); }十进制转n进制&#xff1a; char get(int x){if(x<9){return x0;}else{return…...

Docker Desktop修改镜像存储路径 Docker Desktop Start ... 卡死

1、CMD执行wsl -l -v --all 2、Clean / Purge data 3、导出wsl子系统镜像: wsl --export docker-desktop D:\docker\wsl\distro\docker-desktop.tar wsl --export docker-desktop-data D:\docker\wsl\data\docker-desktop-data.tar4、删除现有的wsl子系统&#xff1a; wsl -…...

小型企业网络安全指南

许多小型企业刚刚起步&#xff0c;没有大公司所拥有的相同资源来保护其数据。他们不仅可能没有资金来支持多样化的安全计划&#xff0c;而且也可能没有人力或时间。 网络犯罪分子知道小型企业缺乏这些资源&#xff0c;并利用这些资源来谋取利益。遭受网络攻击后&#xff0c;小…...

springboot相关报错解决

Caused by: java.lang.ClassNotFoundException: 目录 Caused by: java.lang.ClassNotFoundException: org.springframework.context.event.GenericApplicationListener spring-boot-dependencies:jar:2.1.9.RELEASE was not found org.springframework.context.event.Generi…...

python 中 from import, __name__, __all__, __init__.py 作用,python的模块和导入包

from import 即类似于其他语言一样&#xff0c;是为了将别人写好的 .py 文件引入&#xff0c;并用于自己使用 例如我在一个.py 文件中写了很多用于计数学计算的方法&#xff0c;当别人想要调用我写好的这一套方法时 就需要先 from 我写的文件或其他人写好的文件&#xff08;py…...

Composer安装与配置详解

目录 第一章:Composer简介 1.1 什么是Composer? 1.2 Composer与传统的依赖管理工具的区别 1.3 Composer的发展历程 1.4 本章小结 第二章:Composer安装 2.1 全局安装与项目内安装 2.1.1 全局安装 安装步骤 2.1.2 项目内安装 安装步骤 2.2 不同操作系统下的安装方…...

A5 STM32_HAL库函数 之 CAN通用驱动程序所有函数的介绍及使用

A5 STM32_HAL库函数 之 CAN通用驱动程序所有函数的介绍及使用 1 CAN通用驱动程序所有函数预览1.1 HAL_CAN_Init1.2 HAL_CAN_ConfigFilter1.3 HAL_CAN_DeInit1.4 HAL_CAN_MspInit1.5 HAL_CAN_MspDeInit1.6 HAL_CAN_Transmit1.7 HAL_CAN_Transmit_IT1.8 HAL_CAN_Receive1.9 HAL_C…...

python如何判断图片为黑白还是彩色

基本原理 灰度图分两种情况&#xff1a; 单通道的图片 RGB 三通道的图片&#xff0c;但是每个通道的值相等 对于单通道的图片只需要判断图片的通道值是否为1 对于RGB模式的图片&#xff0c;情况稍稍复杂些。理论上只需判断RGB三个通道的值是否相等&#xff0c;但是现实中灰度…...

C语言进阶课程学习记录-main函数与命令行参数

C语言进阶课程学习记录-main函数与命令行参数 main函数验证以下4中定义是否正确实验-main的返回值cmd窗口 实验-main的输入参数cmd窗口 在main函数执其执行的函数实验-程序执行的第一个函数gcc编译器cmd窗口bcc编译器 小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&…...

Utilize webcam to capture photo with camera

1. Official Guide& my github Official course my github 2. Overcome Webcam js Error in Chrome: Could not access webcam link 直接把代码拷贝到本机的下述目录下 To ignore Chrome’s secure origin policy, follow these steps. Navigate to chrome://flags/#un…...

【uniapp】开发微信小程序 — 注意事项

底部导航栏 (tabBar) 图标的正确做法&#xff1a; 1、图片的标准尺寸为 81px * 81px&#xff0c;该尺寸在官方的文档中有明确的说明&#xff0c;可以参考微信小程序全局配置文档中对 iconPath 属性的说明。 2、为了保持良好的间距&#xff0c;图片的内容区域设置 60px* 比较好&…...

the python tutorial

Using the Python Interpreter Using Python as a Calculator To do floor division and get an integer result you can use the // operator Problem Solving with Algorithms and Data Structures using Python 首先将其拉到本地&#xff1f; 按照craft的方式走一遍&…...

AIoT人工智能物联网之AI 实战

1. jetson-inference 入门 jetson-inference是官方推出的体验套件,提供了三种最常见的AI应用于计算机视觉的类型,imagenet用于 图像辨识 ( Image Recognition )、detectNet用于对象辨识 ( Object Detection )、segNet用于语义分割 可以先使用windows下载 jetson-inference(因…...

Python 大麦抢票脚本

请注意&#xff0c;编写或使用抢票脚本可能违反相关网站的服务条款和法律法规。以下内容仅供学习和了解技术原理之用&#xff0c;不鼓励或支持任何违反规定的行为。 在Python中编写大麦网抢票脚本通常涉及以下几个步骤&#xff1a; ### 1. 分析网站结构 - 使用浏览器的开发者…...

前端开发攻略---用JavaScript打造炫酷数字变化动画效果:手写实现你的自定义动画函数!支持更改任意数字、动画速度

1、演示 2、介绍 这篇文章将向您展示如何使用JavaScript来创建一个自定义的动画函数&#xff0c;以实现数字变化效果。我们将深入了解前端动画的本质&#xff0c;并通过手写代码来实现这个炫酷的数字变化动画效果。您将学到如何利用JavaScript来操作DOM元素&#xff0c;控制动画…...

【学习】移动端兼容性测试有什么方法及重要性

随着移动互联网的快速发展&#xff0c;移动应用程序已经成为人们日常生活中不可或缺的一部分。然而&#xff0c;由于各种移动设备的硬件和软件差异&#xff0c;移动应用程序的兼容性问题也越来越突出。因此&#xff0c;移动端兼容性测试成为了一个重要的环节&#xff0c;它可以…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...