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

Unity记录4.2-存储-从json文件获取Tile路径

文章首发见博客:https://mwhls.top/4813.html。
无图/格式错误/后续更新请见首发页。
更多更新请到mwhls.top查看
欢迎留言提问或批评建议,私信不回。

汇总:Unity 记录

摘要:从json文件获取Tile材质路径。

确定保存方案-2023/08/15

  • 询问了GPT,它说Tilemap是根据摄像机位置进行渲染,所以超大地图不会影响加载性能。
  • GPT推荐了好些方式,我准备先使用json+压缩。
  • 下面是测试用例。
    {"version": "0.0.1","date": "20230815","tiles":{"BlockSoilGrassySoil":{"ID": 0,"name": "Grassy Soil","description": "","path": "Tilemap/Block/Soil/BlockSoilGrassySoil"}}}

Newtonsoft.Json安装-2023/08/16

  • GitHub:Install official via UPM · jilleJr/Newtonsoft.Json-for-Unity Wiki
  • 上方菜单栏Windows-Package Manager-点加号-Add package by name,包名输入“com.unity.nuget.newtonsoft-json”,安装。

从json文件加载材质-2023/08/16

  • 加载材质信息,如下所示。
    • 首先两个与json格式一致的结构体,然后使用文件加载,通过"Newtonsoft.Json"转json。
    using Newtonsoft.Json;public struct TileInfo{public int ID;public string name;public string description;public string path;};public struct TilesInfo{public string version;public string date;public Dictionary<string, TileInfo> tiles;}public class TilemapBase : MonoBehaviour{public static TilesInfo tiles_info;void Start(){load_tiles_info();}void load_tiles_info(){string tiles_info_path = "Assets/Resources/Saved/TilesInfo.json";string jsonText = File.ReadAllText(tiles_info_path);tiles_info = JsonConvert.DeserializeObject<TilesInfo>(jsonText);}}
  • 替换之前写死的材质路径
    • 注:上篇的路径和这篇的路径不一样,因为我把命名换了个风格。
    string tile_path = "Tilemap/Block/Soil/BlockSoilGrassySoil";->string tile_path = TilemapBase.tiles_info.tiles["BlockSoilGrassySoil"].path;
http://www.lryc.cn/news/144725.html

相关文章:

  • vue3页面传参?
  • NB水表和LoRa水表有哪些不同之处?
  • Java进阶(6)——抢购问题中的数据不安全(非原子性问题) Java中的synchronize和ReentrantLock锁使用 死锁及其产生的条件
  • SpringBoot初级开发--加入Log4j进行日志管理打印(6)
  • 计算机竞赛 基于GRU的 电影评论情感分析 - python 深度学习 情感分类
  • android logcat问题 怎么换成旧版
  • 监听的用法watch
  • XML—标记语言
  • 图数据库Neo4j学习五渲染图数据库neo4jd3
  • AI增强的社交网络·导师·电话客服……
  • c# Task异步使用
  • QuickLook概述和使用以及常用插件
  • 1A快恢复整流二极管型号汇总
  • 【element-ui】el-dialog改变宽度
  • 第三讲,实践编程 Eigen
  • POI实现百万数据导出
  • 如何制作党建专题汇报片
  • 沉浸式VR虚拟实景样板间降低了看房购房的难度
  • 如何在Linux环境下给Web应用配置HTTPS证书
  • 面试题-React(七):React组件通信
  • MASM32编程调用 API函数RtlIpv6AddressToString,Windows 10 容易,Windows 7 折腾
  • 为什么使用Nacos而不是Eureka(Nacos和Eureka的区别)
  • Python作业一
  • protobuf概览
  • <C++> SSE指令集
  • cortex-A7核LED灯实验--STM32MP157
  • WPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口
  • clickhouse(十四、分布式DDL阻塞及同步阻塞问题)
  • 怎么入门网络安全(黑客)?
  • c++ boost::json