了解Unity编辑器之组件篇Tilemap(五)
Tilemap:用于创建和编辑2D网格地图的工具。Tilemap的主要作用是简化2D游戏中地图的创建、编辑和渲染过程。以下是一些Tilemap的主要用途:
2D地图绘制:Tilemap提供了一个可视化的编辑器界面,可以快速绘制2D地图,例如迷宫、平台关卡、RPG世界等。
碰撞检测:Tilemap可以定义碰撞区域,用于检测角色或物体与地图中的障碍物之间的碰撞。这样可以轻松实现游戏角色在地图上的移动和碰撞反应。
视觉效果:Tilemap可以灵活地设置不同的瓦片贴图,使地图具有多样的视觉效果。可以实现平铺、滚动、装饰物、动画效果等,提升游戏的视觉吸引力。
地图导航:Tilemap可以用于创建路径系统,用于角色移动和AI寻路。可以在地图上定义不同的路径区域和障碍物,并使用相应的算法计算最佳路径。
游戏关卡设计:Tilemap可以用于设计游戏的关卡布局。可以使用砖块、道具和障碍物等元素来创建有趣的游戏关卡,为游戏的可玩性和挑战性增加更多元素。
一、Tilemap:用于创建和管理2D网格地图的组件
Animation Frame Rate(动画帧率):如果瓦片地图拥有动画帧,则可以设置动画的播放速度(帧率)。
Color(颜色):可以为瓦片地图设置颜色,以调整其外观。这可以用于实现瓦片地图的着色效果,例如高亮或变暗。
Tile Anchor(瓷砖锚点):确定瓦片地图的位置参考点。可以通过调整锚点的位置来改变瓦片地图的对齐方式。
Orientation(方向):定义瓦片地图的朝向。可以选择水平、垂直或90度旋转来改变瓦片地图的朝向。
Offset(偏移量):设置瓦片地图的在网格中的位置偏移。可以通过调整偏移量来微调瓦片地图的位置。
Rotation(旋转):可以将瓦片地图以一定角度进行旋转。可以按照顺时针或逆时针旋转来改变瓦片地图的朝向。
Scale(缩放):可以将瓦片地图在x和y轴上进行缩放,从而改变瓦片地图的大小。
二、Tilemap Collider 2D:用于在Tilemap上添加碰撞体的组件
Max Tile Change Count(最大瓦片更改计数):这个属性用于定义Tilemap Collider 2D组件与Tilemap的碰撞体之间的关联。当Tilemap的瓦片被修改时,该计数器将被增加,当计数器达到Max Tile Change Count时,Tilemap Collider 2D组件将自动重新构建碰撞体以保持更新。
Extrusion Factor(扩展因子):这个属性定义了Tilemap Collider 2D组件中碰撞体的扩展程度。扩展因子为1表示碰撞体完全匹配瓦片的大小,小于1则会缩小碰撞体,大于1则会放大碰撞体的尺寸。
Material(材质):这个属性定义了Tilemap Collider 2D组件使用的碰撞体材质。碰撞体材质可以影响碰撞检测和相应的物理效果。
Is Trigger(是触发器):这个属性指示碰撞体是否作为触发器来使用。如果勾选了这个选项,碰撞体将不参与实际的物理碰撞反应,而是触发相关的事件。
Used By Effector(被效果器使用):这个属性指示碰撞体是否被2D效果器(2D Effectors)影响。如果勾选了这个选项,碰撞体将对2D效果器产生响应,如接收力、旋转等。
Used By Composite(被合成使用):这个属性指示碰撞体是否被Composite Collider 2D组件使用。如果勾选了这个选项,碰撞体将被合成碰撞器(Composite Collider)使用,以提高碰撞检测的效率。
Offset(偏移):这个属性定义了碰撞体相对于Tilemap的位置偏移。通过调整偏移值,你可以更精确地控制碰撞体的位置。
Info属性:此属性提供关于碰撞体的一些信息,如碰撞体的数量、顶点数等。它可以用于调试或显示相关信息。
三、Tilemap Renderer:用于渲染Tilemap的组件
Sort Order(排序顺序):这个属性定义了Tilemap在同一Sorting Layer(排序层)中的渲染顺序。较小的值会在前面渲染,较大的值会在后面渲染。
Mode(模式):这个属性定义了Tilemap的排序模式
(1)Chunk(块模式):
当选择Chunk模式时,Tilemap会被视为一个整体对象进行排序和渲染。
这意味着Tilemap中的每个Tile都会受到相同的排序规则和渲染方式的影响。
如果你的Tilemap中的Tile拥有相同的Sorting Layer和Order in Layer属性,选择Chunk模式可以提高渲染性能,因为Unity可以更好地优化对整个Tilemap的渲染。
(2)Individual(单独模式):
当选择Individual模式时,Tilemap中的每个Tile都会被视为一个单独的对象进行排序和渲染。
这意味着每个Tile可以具有不同的Sorting Layer和Order in Layer属性,并且可以以不同的顺序进行渲染。
选择Individual模式可以实现更加细粒度的控制,但也可能会导致一些额外的渲染开销,特别是在大规模Tilemap中。
Detect Chunk Culling Bounds(检测分块裁剪边界):用于指定Tilemap分块裁剪边界的检测方式
(1)Auto(自动):
当选择 Auto 模式时,Unity 会自动检测分块裁剪边界。
分块裁剪(Chunk Culling)是一种性能优化技术,可以在大型 Tilemap 中只渲染可见的区域,而不是渲染整个 Tilemap。这样可以减少不可见区域的渲染开销。
在 Auto 模式下,Unity 会根据你的摄像机视口与 Tilemap 的位置和大小自动计算分块裁剪边界。
(2)Manual(手动):
当选择 Manual 模式时,你可以手动设置分块裁剪边界。
在 Manual 模式下,你需要自己指定 Tilemap 的分块裁剪边界,以控制渲染可见区域的范围。
这对于需要更精确控制渲染区域的情况很有用,比如有些部分地图需要始终保持可见,而其他部分可以进行裁剪。
Chunk Culling Bounds(分块裁剪边界):这个属性在启用了分块裁剪时用于手动指定Tilemap的裁剪边界。
Mask Interaction(遮罩交互):这个属性定义了Tilemap与遮罩掩模的交互方式,用于确定Tilemap的可见性:
(1)VisibleInsideMask(遮罩内可见):Tilemap在遮罩内可见。
(2)VisibleOutsideMask(遮罩外可见):Tilemap在遮罩外可见。
(3)None(不可见):Tilemap始终不可见。
Material(材质):这个属性定义了Tilemap的渲染材质。
Additional Settings(附加设置):
(1)Sorting Layer(排序层):这个属性定义了Tilemap的渲染排序层。
(2)Order in Layer(层中顺序):这个属性定义了Tilemap在排序层中的渲染顺序,与其他在同一排序层中的对象进行排序比较。较小的值会在前面渲染,较大的值会在后面渲染。
相关文章:
了解Unity编辑器之组件篇Tilemap(五)
Tilemap:用于创建和编辑2D网格地图的工具。Tilemap的主要作用是简化2D游戏中地图的创建、编辑和渲染过程。以下是一些Tilemap的主要用途: 2D地图绘制:Tilemap提供了一个可视化的编辑器界面,可以快速绘制2D地图,例如迷…...
Linux字符设备操作函数
Linux字符设备操作函数是指对字符设备进行打开、关闭、读取、写入、控制等基本操作的函数,它们通过字符设备结构体中的 file_operations 结构体来定义。常用的字符设备操作函数包括: 1、open: 当一个进程试图打开设备文件时,调用这个函数。开…...
吉林大学计算机软件考研经验贴
文章目录 简介政治英语数学专业课 简介 本人23考研,一战上岸吉林大学软件工程专硕,政治72分,英一71分,数二144分,专业课967综合146分,总分433分,上图: 如果学弟学妹需要专业课资料…...
2023-07-26力扣每日一题-区间翻转线段树
链接: 2569. 更新数组后处理求和查询 题意: 给两个等长数组nums1和nums2,三个操作: 操作1:将nums1的[l,r]翻转(0变1,1变0) 操作2:将nums2[any]变成nums2[any]nums1[any]*p&…...
Java设计模式之 -- 桥接模式
什么是桥接模式 桥接模式是一种结构型设计模式,也被称为“Handle/Body”。这种设计模式主要用于将抽象部分与它的实现部分分离,使它们可以独立地变化。这种方式有助于减少系统中的耦合性,增加了扩展性。 主要解决什么问题 桥接模式主要解决…...
【node.js】02-path模块
目录 1. path.join() 2. path.basename() 3. path.extname() 1. path.join() 使用 path.join() 方法,可以把多个路径片段拼接为完整的路径字符串,语法格式如下: path.join([...paths]) 例子: const path require(path)co…...
攻防世界-Reverse-re1
题目描述:菜鸡开始学习逆向工程,首先是最简单的题目 下载附件,执行程序,如下界面 1. 思路分析 没啥说的,既然题目都说是一道简单的逆向题,那么直接使用ida逆向即可,看逆向出的结果是否能写入到…...
AES加密的基本常识和封装类
AES加密的基本常识和封装类 AES(Advanced Encryption Standard)是一种对称密钥加密算法,被广泛用于保护敏感数据的安全性。它是一种块加密算法,意味着它将明文数据分成固定大小的块,并使用相同的密钥对每个块进行独立…...
elasticsearch使用记录
参考文章:https://elasticsearch-py.readthedocs.io/en/v8.8.2/ 参考文章:https://cuiqingcai.com/6214.html 参考文章:https://www.cnblogs.com/cupleo/p/13953890.html elasticsearch版本:8.8.2(软件包发行版) python版本&#…...
UNI-APP_横屏切换竖屏出现样式混乱问题
app从竖屏页面1进入竖屏页面2,再进入横屏,再返回,再返回从新回到竖屏页面1,再次进入竖屏页面2,发现竖屏页面2的所有图片字体都被放大了。再返回竖屏1,再进入竖屏2,一切又恢复正常。 解决跳转横…...
数据可视化(3)
1.饼状图 #饼状图 #pie(x,labels,colors,labeldistance,autopct,startangle,radius,center,textprops) #x,每一块饼状图的比例 #labels:每一块饼形图外侧显示的文字说明 #labeldistance:标记的绘制位置,相对于半径的比例…...
AI面试官:MD5、DES、RSA、AES加密
AI面试官:MD5、DES、RSA、AES加密 文章目录 AI面试官:MD5、DES、RSA、AES加密1. 什么是MD5加密?它在实际应用中有哪些场景?2. DES加密是什么?它在现实中的应用场景有哪些?3. 问题:RSA加密是什么…...
Shell脚本学习-$$特殊变量
$$特殊变量: 获取脚本执行的进程号(PID)。 [rootvm1 scripts]# cat test_pid.sh echo $$ > /tmp/a.pid sleep 300代码说明: 1)获取$$值,也就是当前脚本进程的PID值,重定向到/tmp/a.pid文件…...
vscode中python插件过新导致无法正常debug问题解决安装vscode以前版本python插件教程
您需要从.vsix文件安装它。您可以在此处找到它们。 下载所需.vsix版本的文件。您可能需要单击assets才能看到它们。 然后打开 VSCode,转到extensions-> 单击三个点 ->install from vsix并选择您的文件。 重启以后,就可以正常debug了!...
chrome macos编译
下载工具包 git clone https://chromium.googlesource.com/chromium/tools/depot_tools/gitpwd export PATH"$PATH:/Users/lichengjun/Downloads/chrome_build/depot_tools" mkdir chromium cd chromium 如果想快的话直接: fetch --nohooks --no-history chromium (…...
Linux环境下Elasticsearch相关软件安装
Linux环境下Elasticsearch相关软件安装 本文将介绍在linux(Centos7)环境下安装Elasticsearch相关的软件。 1、安装Elasticsearch 1.1 Elasticsearch下载 首先去Elasticsearch官网下载相应版本的安装包,下载之后传输到linux服务器上。 官网地址:http…...
【趟坑记录】d3.zoom()的正确使用姿势 @d3.v7
【趟坑记录】d3.zoom()的正确使用姿势 d3.v7 文章目录 【趟坑记录】d3.zoom()的正确使用姿势 d3.v7问题重现原因分析解决方案放缩平移写法特殊修改transform函数的写法 总结 在开发一个D3应用的时候遇到了一个 zoom相关的问题,记录解决思路与方案 问题重现 最近在…...
基于 Docker + Nginx + Gitlab-runner 实现前端自动化部署流程
本篇会用到Docker,Gitlab-runner等相关工具,如果对其不是特别了解,可以参考下相关文档: GitLab RunnerDocker 快速入门CI/CD:持续集成/持续部署 在早期部署前端项目时,我们通常会通过ftp把前端代码直接传…...
make/makefile的使用
make/makefile 文章目录 make/makefile初步认识makefile的工作流程依赖关系和依赖方法make的使用 总结 make是一个命令,是一个解释makefile中指令的命令工具,makefile是一个文件,当前目录下的文件,两者搭配使用,完成项…...
Flutter中Navigator 跳转传参数和反向传参数
初始化路由 MaterialApp(routes: <String, WidgetBuilder>{"/Second": (BuildContext context){return Second("");}}, 跳转传参数 String va await Navigator.of(context).push(MaterialPageRoute(builder: (content) {return Second( demo); },…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...
