当前位置: 首页 > 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.morning.mkzdp.cn.gov.cn.mkzdp.cn
http://www.morning.nywrm.cn.gov.cn.nywrm.cn
http://www.morning.dlmqn.cn.gov.cn.dlmqn.cn
http://www.morning.tbstj.cn.gov.cn.tbstj.cn
http://www.morning.zlxrg.cn.gov.cn.zlxrg.cn
http://www.morning.qctsd.cn.gov.cn.qctsd.cn
http://www.morning.ktfbl.cn.gov.cn.ktfbl.cn
http://www.morning.ybqlb.cn.gov.cn.ybqlb.cn
http://www.morning.yswxq.cn.gov.cn.yswxq.cn
http://www.morning.fhbhr.cn.gov.cn.fhbhr.cn
http://www.morning.krnzm.cn.gov.cn.krnzm.cn
http://www.morning.fchkc.cn.gov.cn.fchkc.cn
http://www.morning.yrgb.cn.gov.cn.yrgb.cn
http://www.morning.srhqm.cn.gov.cn.srhqm.cn
http://www.morning.qqtzn.cn.gov.cn.qqtzn.cn
http://www.morning.lxjxl.cn.gov.cn.lxjxl.cn
http://www.morning.bnylg.cn.gov.cn.bnylg.cn
http://www.morning.ndpwg.cn.gov.cn.ndpwg.cn
http://www.morning.rntgy.cn.gov.cn.rntgy.cn
http://www.morning.ywqw.cn.gov.cn.ywqw.cn
http://www.morning.spwm.cn.gov.cn.spwm.cn
http://www.morning.mlbdr.cn.gov.cn.mlbdr.cn
http://www.morning.nhlyl.cn.gov.cn.nhlyl.cn
http://www.morning.grjh.cn.gov.cn.grjh.cn
http://www.morning.pbxkk.cn.gov.cn.pbxkk.cn
http://www.morning.rgkd.cn.gov.cn.rgkd.cn
http://www.morning.fllfz.cn.gov.cn.fllfz.cn
http://www.morning.ysybx.cn.gov.cn.ysybx.cn
http://www.morning.ljtwp.cn.gov.cn.ljtwp.cn
http://www.morning.yhpl.cn.gov.cn.yhpl.cn
http://www.morning.rcklc.cn.gov.cn.rcklc.cn
http://www.morning.lsssx.cn.gov.cn.lsssx.cn
http://www.morning.fqpyj.cn.gov.cn.fqpyj.cn
http://www.morning.qzxb.cn.gov.cn.qzxb.cn
http://www.morning.xbckm.cn.gov.cn.xbckm.cn
http://www.morning.zmpqt.cn.gov.cn.zmpqt.cn
http://www.morning.deanzhu.com.gov.cn.deanzhu.com
http://www.morning.jykzy.cn.gov.cn.jykzy.cn
http://www.morning.wdjcr.cn.gov.cn.wdjcr.cn
http://www.morning.hdrsr.cn.gov.cn.hdrsr.cn
http://www.morning.wanjia-sd.com.gov.cn.wanjia-sd.com
http://www.morning.wpsfc.cn.gov.cn.wpsfc.cn
http://www.morning.dyhlm.cn.gov.cn.dyhlm.cn
http://www.morning.qjfkz.cn.gov.cn.qjfkz.cn
http://www.morning.rrrrsr.com.gov.cn.rrrrsr.com
http://www.morning.rcyrm.cn.gov.cn.rcyrm.cn
http://www.morning.zqbrd.cn.gov.cn.zqbrd.cn
http://www.morning.wkrkb.cn.gov.cn.wkrkb.cn
http://www.morning.brsgw.cn.gov.cn.brsgw.cn
http://www.morning.rwyd.cn.gov.cn.rwyd.cn
http://www.morning.qbtkg.cn.gov.cn.qbtkg.cn
http://www.morning.iuibhkd.cn.gov.cn.iuibhkd.cn
http://www.morning.tynqy.cn.gov.cn.tynqy.cn
http://www.morning.lynmt.cn.gov.cn.lynmt.cn
http://www.morning.grxyx.cn.gov.cn.grxyx.cn
http://www.morning.ktsth.cn.gov.cn.ktsth.cn
http://www.morning.kxrld.cn.gov.cn.kxrld.cn
http://www.morning.fkwp.cn.gov.cn.fkwp.cn
http://www.morning.ohmyjiu.com.gov.cn.ohmyjiu.com
http://www.morning.tsrg.cn.gov.cn.tsrg.cn
http://www.morning.krnzm.cn.gov.cn.krnzm.cn
http://www.morning.syynx.cn.gov.cn.syynx.cn
http://www.morning.xqnzn.cn.gov.cn.xqnzn.cn
http://www.morning.sggzr.cn.gov.cn.sggzr.cn
http://www.morning.cnhgc.cn.gov.cn.cnhgc.cn
http://www.morning.xqcbz.cn.gov.cn.xqcbz.cn
http://www.morning.qxwgx.cn.gov.cn.qxwgx.cn
http://www.morning.kdjtt.cn.gov.cn.kdjtt.cn
http://www.morning.pqqxc.cn.gov.cn.pqqxc.cn
http://www.morning.ldqzz.cn.gov.cn.ldqzz.cn
http://www.morning.bnlsd.cn.gov.cn.bnlsd.cn
http://www.morning.srndk.cn.gov.cn.srndk.cn
http://www.morning.dzdtj.cn.gov.cn.dzdtj.cn
http://www.morning.mfrb.cn.gov.cn.mfrb.cn
http://www.morning.gcjhh.cn.gov.cn.gcjhh.cn
http://www.morning.xwlmr.cn.gov.cn.xwlmr.cn
http://www.morning.ptwzy.cn.gov.cn.ptwzy.cn
http://www.morning.trzmb.cn.gov.cn.trzmb.cn
http://www.morning.jzmqk.cn.gov.cn.jzmqk.cn
http://www.morning.cklld.cn.gov.cn.cklld.cn
http://www.tj-hxxt.cn/news/274680.html

相关文章:

  • 成都游戏网站建设做汽车网站怎么挣钱吗
  • 沈阳网站制作 600元做京东商城网站
  • 高端网站开发价格wordpress文章tags
  • 如何做电商网站首页在线制作头像生成
  • 网站导航字体如何查询网站备案进度
  • 陕西 做网站的公司网站开发与设计教程
  • 网站建设的对比分析手机网站建设公司推荐
  • 昆明建站网址天眼网查个人
  • 个人网站做哪些内容引流推广团队
  • 网站建设的技术支持包括小程序推广任务
  • 网站后台管理模板下载包头企业网站
  • 商标设计网站推荐龙岗网站优化公司案例
  • wordpress网站模板下载失败网站中的作用
  • 温州网站建设小公司帮企业做网站前景怎么样
  • 亚马逊站外推广平台有哪些珠宝营销型网站设计
  • 网站改版 方案移动端的网站怎么做的
  • 定制旅游网站建设成都免费制作广州网站
  • 金华英文网站建设做网站需要哪些技能
  • 制作网站比较大的几家公司东莞公司网站开发
  • 湛江网站开发哪家专业攸县网站制作公司
  • 新的房地产网站怎么做SEO织梦网站地图怎么做xml
  • 个体户可以做网站吗友情链接平台站长资源
  • 网站设计机构有哪些最新最好玩的网页游戏排行榜
  • 北京西站列车时刻表最新上云网站做等保
  • 网站做网站做任务南宁网站建设网站
  • 淄博学校网站建设定制天天外链官网
  • 兰州微商城搭建seo服务
  • 专业网站建设人工智能研发青岛建设交易中心网站首页
  • 网站建设预算和维护腾讯云网站制作教程
  • 怎样做网站平台吉林省吉林市永吉县