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

做电子杂志用什么网站欧洲大带宽服务器

做电子杂志用什么网站,欧洲大带宽服务器,商城小程序开发发,做网站用什么笔记本当在Unity游戏中需要加载和管理游戏数据#xff0c;通常使用JSON文件是一种常见的方法。在本篇博客中#xff0c;我们将深入探讨如何使用C#和Unity的JSON反序列化功能来实现这一目标。我们可以使用Unity的JsonUtility来反序列化JSON数据并将其映射到自定义的C#数据结构中。 …当在Unity游戏中需要加载和管理游戏数据通常使用JSON文件是一种常见的方法。在本篇博客中我们将深入探讨如何使用C#和Unity的JSON反序列化功能来实现这一目标。我们可以使用Unity的JsonUtility来反序列化JSON数据并将其映射到自定义的C#数据结构中。 首先让我们来创建一些数据类以便加载和管理游戏中的角色和武器数据。在这个示例中我们将使用Player角色、Monster怪物和WeaponData武器数据这三种数据类型。 {players: [{id: 1,name: player0,weaponID: 102,maxHp: 50,damage: 0,defense: 0,moveSpeed: 5.0,coolDown: 0,amount: 0},{id: 2,name: player1,weaponID: 101,maxHp: 40,damage: -10,defense: 0,moveSpeed: 5,coolDown: 20,amount: 0},{id: 3,name: player2,weaponID: 101,maxHp: 50,damage: 20,defense: 1,moveSpeed: 5.0,coolDown: -50,amount: 1},{id: 4,name: player3,weaponID: 102,maxHp: 50,damage: -50,defense: -1,moveSpeed: 6,coolDown: 100,amount: 0}] } 我们需要创建了具有与JSON数据匹配的数据结构。这些类使用[Serializable]特性以便能够进行JSON序列化和反序列化 [Serializable]public class Monster{public int id;public string name;public int maxHp;public int damage;public int defense;public float moveSpeed;public int expMul;}在这里插入代码片通过观察JSON文件我们发现这个JSON文件示例是一个包含多个玩家信息的数组。 [Serializable]public class PlayerData{public ListPlayer players new ListPlayer();}我们可以用一个玩家数据结构的数组去存储这个json文件并 用 TextAsset textAsset Managers.Resource.LoadTextAsset($Data/PlayerData); PlayerData []players JsonUtility.FromJsonLoader(textAsset.text);去解析并且遍历它放到字典里 当我们要解析的json特别多时 我们定义了一个泛型方法LoadJson该方法负责加载JSON数据并将其反序列化为具体类型的字典。这个方法接受一个Loader类型该类型必须实现ILoader接口。 Loader LoadJsonLoader, Key, Value(string path) where Loader : ILoaderKey, Value{TextAsset textAsset Managers.Resource.LoadTextAsset($Data/{path});return JsonUtility.FromJsonLoader(textAsset.text);}ILoader接口 public interface ILoaderKey, Value {DictionaryKey, Value MakeDict(); }我们让存储具有JSON数据结构的数组继承该接口 [Serializable]public class PlayerData : ILoaderint, Player{public ListPlayer players new ListPlayer();public Dictionaryint, Player MakeDict(){Dictionaryint, Player dict new Dictionaryint, Player();foreach (Player player in players)dict.Add(player.id, player);return dict;}} 这样就可以将JSON文件反序列化放在数组中 public Dictionaryint, Data.WeaponData WeaponData { get; private set; } new Dictionaryint, Data.WeaponData();public Dictionaryint, Data.Player PlayerData { get; private set; } new Dictionaryint, Data.Player();public Dictionaryint, Data.Monster MonsterData { get; private set; } new Dictionaryint, Data.Monster();public void Init(){PlayerData LoadJsonData.PlayerData, int, Data.Player(PlayerData).MakeDict();WeaponData LoadJsonData.WeaponDataLoader, int, Data.WeaponData(WeaponData).MakeDict();MonsterData LoadJsonData.MonsterData, int, Data.Monster(MonsterData).MakeDict();}代码如下 using System; using System.Collections; using System.Collections.Generic; using UnityEngine;public interface ILoaderKey, Value {DictionaryKey, Value MakeDict(); }public class DataManager {public Dictionaryint, Data.WeaponData WeaponData { get; private set; } new Dictionaryint, Data.WeaponData();public Dictionaryint, Data.Player PlayerData { get; private set; } new Dictionaryint, Data.Player();public Dictionaryint, Data.Monster MonsterData { get; private set; } new Dictionaryint, Data.Monster();public void Init(){PlayerData LoadJsonData.PlayerData, int, Data.Player(PlayerData).MakeDict();WeaponData LoadJsonData.WeaponDataLoader, int, Data.WeaponData(WeaponData).MakeDict();MonsterData LoadJsonData.MonsterData, int, Data.Monster(MonsterData).MakeDict();}Loader LoadJsonLoader, Key, Value(string path) where Loader : ILoaderKey, Value{TextAsset textAsset Managers.Resource.LoadTextAsset($Data/{path});return JsonUtility.FromJsonLoader(textAsset.text);}} 在DataManager的Init方法中我们加载并初始化了游戏数据包括角色数据、武器数据和怪物数据。通过调用LoadJson泛型方法我们可以轻松地加载各种类型的JSON数据并将其转化为字典对象。 using System; using System.Collections; using System.Collections.Generic; using UnityEngine;namespace Data {#region Character[Serializable]public class Player{public int id;public string name;public int weaponID;public int maxHp;public int damage;public int defense;public float moveSpeed;public int coolDown;public int amount;}[Serializable]public class PlayerData : ILoaderint, Player{public ListPlayer players new ListPlayer();public Dictionaryint, Player MakeDict(){Dictionaryint, Player dict new Dictionaryint, Player();foreach (Player player in players)dict.Add(player.id, player);return dict;}}#endregion#region Monster[Serializable]public class Monster{public int id;public string name;public int maxHp;public int damage;public int defense;public float moveSpeed;public int expMul;}public class MonsterData : ILoaderint, Monster{public ListMonster monsters new ListMonster();public Dictionaryint, Monster MakeDict(){Dictionaryint, Monster dict new Dictionaryint, Monster();foreach (Monster monster in monsters)dict.Add(monster.id, monster);return dict;}}#endregion#region Weapon[Serializable]public class WeaponData{public int weaponID;public string weaponName;public ListWeaponLevelData weaponLevelData new ListWeaponLevelData();}[Serializable]public class WeaponLevelData{public int level;public int damage;public float movSpeed;public float force;public float cooldown;public float size;public int penetrate;public int countPerCreate;}[Serializable]public class WeaponDataLoader : ILoaderint, WeaponData{public ListWeaponData weapons new ListWeaponData();public Dictionaryint, WeaponData MakeDict(){Dictionaryint, WeaponData dict new Dictionaryint, WeaponData();foreach (WeaponData weapon in weapons)dict.Add(weapon.weaponID, weapon);return dict;}}#endregion}通过使用Unity的JsonUtility和C#的泛型方法我们可以方便地加载和管理游戏数据。这种方法对于处理不同类型的数据非常有用而且代码可复用性很高。希望这篇博客对你了解Unity中的JSON反序列化和数据管理有所帮助。如果你有任何问题或需要进一步的指导请随时在评论中提问
http://www.dnsts.com.cn/news/236776.html

相关文章:

  • html网站模板下载pvtc2c平台
  • 中山建设工程招聘信息网站北京网站设计价格
  • 网站设计规划思路wordpress转typecho插件
  • 运动服饰网站建设目的网站建设与维护实验报告
  • 找网站做q币江西网站建设销售电话
  • 佛山网站设计师在 wordpress 本地安装 wordpress
  • 深圳的网站制作公司500套wordpress模板
  • 网站后台 语言表白网站在线制作软件
  • 网站seo和sem是什么意思网站公司设计
  • 昆明免费建站模板中国前100强企业
  • 自建网站平台有哪些功能网站模板如何编辑软件
  • 做调查问卷的网站知乎国外域名
  • 阜阳市建设工程网站凡科互动登录
  • 网站建设软著关闭网站需要多久
  • 美橙网站产品详情金融网站建设银行
  • 建设一个视频网站需要什么时候开始公司网站续费一年多少钱
  • 单网页网站如何做长春网站制作工具
  • 旅游电子商务网站的建设方案域名不变修改网站怎么做
  • 贵安新区住房和城乡建设厅网站网上订单管理系统
  • 长武网站建设建设企业网站的申请
  • 云南省住房和建设厅网站公司企业网站怎么建设
  • 网站安装环境配置深圳外贸soho网站建设
  • 网站设计远程培训域名设计与分析
  • 我是做装修的怎么样投资网站app定做开发公司
  • 建设邯郸网站港海(天津)建设股份有限公司网站
  • 网站建设对公司有什么好处网络运营者应当按照网络安全等级保护制度的要求
  • 网站优化费用怎么做会计分录wordpress 淘口令主题
  • 我做网站价格python网页版编程
  • 哪里有做桥梁模型的网站嘉上营销
  • 阿瓦提网站建设淄博网站电子商城平台建设