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.mzph.cn/news/61925.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode ->206 反转链表

题目 算法思路及代码实现 #include <iostream> using namespace std;struct ListNode {int val; //当前节点的值ListNode *next;

Oracle 如何给大表添加带有默认值的字段

一、讲故事 你是否遇到过开发人员添加字段&#xff0c;导致数据库锁表问题&#xff1f; 但是令开发疑惑的事&#xff0c;他们添加字段&#xff0c;有的时候很快&#xff0c;有的时候很慢&#xff1f; 为什么呢&#xff1f; 询问得知&#xff0c;**加的慢时候是带上了default默…

CSS 样式使用link和@import有什么区别

在页面导入样式时&#xff0c;使用link和import有以下区别&#xff1a; 位置&#xff1a;link标签可以放置在HTML文档的head或body中的任何位置&#xff0c;而import规则必须出现在CSS样式表的顶部。 加载方式&#xff1a;当浏览器解析到link标签时&#xff0c;会立即请求并加…

【Tkinter系列09/15】小部件(Scrollbar

22. 小部件Scrollbar 许多小部件&#xff08;如列表框和画布&#xff09;可以 就像将窗口滑动到更大的虚拟区域一样。你 可以将滚动条小部件连接到它们&#xff0c;为用户提供 相对于内容滑动视图的方式。 下面是带有关联条目小部件的屏幕截图 滚动条小部件&#xff1a; 滚动条…

Golang 中的 archive/zip 包详解(三):常用函数

Golang 中的 archive/zip 包用于处理 ZIP 格式的压缩文件&#xff0c;提供了一系列用于创建、读取和解压缩 ZIP 格式文件的函数和类型&#xff0c;使用起来非常方便&#xff0c;本文讲解下常用函数。 zip.OpenReader 定义如下&#xff1a; func OpenReader(name string) (*R…

伦敦银交易时间怎么选择?

伦敦银和伦敦金都是全球性的交易品种&#xff0c;一般的现货贵金属交易平台&#xff0c;都可以同时经营这两个品种&#xff0c;而且它们的交易时间是一致的&#xff0c;以香港市场的平台为例&#xff0c;基本上交易时间都会从北京周一的早上7点&#xff0c;延续到周六凌晨5点左…

虚拟化技术原理

计算虚拟化 介绍 把物理主机上物理资源&#xff08;CPU&#xff0c;内存&#xff0c;IO外设&#xff09;&#xff0c;通过虚拟化层抽象成超量、等量的逻辑资源&#xff08;虚拟CPU&#xff0c;虚拟内存&#xff0c;虚拟IO设备&#xff09;&#xff0c;然后重新组合形成新的虚…

go的iris框架进行接收post请求参数获取与axios(vue)的数据传入

iris的post请求&接收数据 package mainimport "github.com/kataras/iris/v12"func main(){app : iris.New()//Get请求app.Get("/",func(ctx iris.Context){ctx.Text("你好,这是首页")})//Post请求app.Post("/postTest",func(ctx …

跨境海淘攻略:如何实现自己批量养买家账号海淘

近年来&#xff0c;随着互联网的发展&#xff0c;网购已经成为人们日常生活中不可或缺的一部分。不仅在国内购买商品&#xff0c;在跨境电商行业越来越成熟&#xff0c;很多的消费者开始选择购买国外平台商品&#xff0c;价格相比国内专柜来说会更为优惠。因此&#xff0c;海淘…

【C++初阶】反向迭代器的实现

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;C航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1…

【基于空间纹理的残差网络无监督Pansharpening】

Unsupervised Pansharpening method Using Residual Network with Spatial Texture Attention &#xff08;基于空间纹理的残差网络无监督泛锐化方法&#xff09; 近年来&#xff0c;深度学习已经成为最受欢迎的泛锐化工具之一&#xff0c;许多相关方法已经被研究并反映出良好…

使用SpaceDesk连接平板作为电脑副屏详细步骤教程

文章目录 下载安装PC端安装安卓端安装 配置步骤PC端安卓端 连接 SpaceDesk官网链接https://www.spacedesk.net/ (应该是需要科学上网才能进入) SpaceDesk它可以连接安卓,苹果的平板,手机等&#xff0c;也可以连接其他可以打开网页&#xff08;HTML5&#xff09;的设备。 这里我…

Mysql读取binlog并分析 binlog

1&#xff0c;Mysql 开启 binlog 配置文件中增加 [mysqld] log-binmysql-bin 2.常用 binlog命令 # 是否启用binlog日志 show variables like log_bin;# 查看详细的日志配置信息 show global variables like %log%;# 查看binlog的目录 show global variables like "%l…

npm切换下载源(多种国内源)

npm切换下载源 一、npm二、操作1.查看源2.切换源 一、npm npm是一个NodeJS包管理和分发工具 二、操作 1.查看源 通常默认官方源是https://registry.npmjs.org npm config get registry2.切换源 在国内使用官方下载依赖往往速度慢&#xff0c;易出错&#xff0c;因此我们选…

力扣:76. 最小覆盖子串(Python3)

题目&#xff1a; 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串&#xff0c;则返回空字符串 "" 。 注意&#xff1a; 对于 t 中重复字符&#xff0c;我们寻找的子字符串中该字符数量必须不少于 t 中…

node18 vue2启动报错 error:0308010C:digital envelope routines::unsupported

出现原因 貌似是因为是因为 node 17版本开始发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制&#xff0c;可能会对生态系统造成一些影响。 解决方法 第一种方法降低node版本 降低到17以下即可 &#xff0c;如项目不能降低版本 看后面的解决方式 第二种方法…

vue常见问题汇总

来源&#xff1a;https://www.fly63.com/ Q1&#xff1a;安装超时(install timeout) 方案有这么些: cnpm : 国内对npm的镜像版本/*cnpm website: https://npm.taobao.org/*/npm install -g cnpm --registryhttps://registry.npm.taobao.org// cnpm 的大多命令跟 npm 的是一致的…

[国产MCU]-W801开发实例-实时时钟模块(RTC)

实时时钟模块(RTC) 文章目录 实时时钟模块(RTC)1、RTC介绍2、RTC驱动API3、RTC使用示例本文将详细介绍如何使用W801的实时时钟模块。 1、RTC介绍 RTC是由 PMU模块提供的 BCD计数器 /定时器,两个 32位寄存器包含秒、分、时、日、月、年,以二进制编码的十进制格式表示( B…

Frida-hook:微信数据库的破解

Frida-hook:微信数据库的破解 Frida-hook:微信数据库的破解1. 准备条件2. 用frida获取key2.1 静态分析微信apk文件2.2 frida hook&#xff1a; 3. 用sqlcipher打开数据库&#xff1a; Frida-hook:微信数据库的破解 我们可以从root过的手机中&#xff0c;找到微信相关数据库&am…

《Flink学习笔记》——第十二章 Flink CEP

12.1 基本概念 12.1.1 CEP是什么 1.什么是CEP&#xff1f; 答&#xff1a;所谓 CEP&#xff0c;其实就是“复杂事件处理&#xff08;Complex Event Processing&#xff09;”的缩写&#xff1b;而 Flink CEP&#xff0c;就是 Flink 实现的一个用于复杂事件处理的库&#xff08…