了解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在排序层中的渲染顺序,与其他在同一排序层中的对象进行排序比较。较小的值会在前面渲染,较大的值会在后面渲染。

相关推荐
莲动渔舟8 小时前
国产编辑器EverEdit - 扩展脚本:让EverEdit支持“批量查找”功能
编辑器·emeditor·notepad·everedit
omegayy9 小时前
Unity 2022.3.x部分Android设备播放视频黑屏问题
android·unity·视频播放·黑屏
Liudef069 小时前
deepseek v3-0324实现SVG 编辑器
开发语言·javascript·编辑器·deepseek
虾球xz12 小时前
游戏引擎学习第200天
学习·游戏引擎
woshihedayu13 小时前
虚幻引擎控制角色跟随移动方向旋转的方法
游戏引擎·虚幻
云心雨禅13 小时前
Vim操作指令全解析
编辑器·vim·excel
虾球xz13 小时前
游戏引擎学习第199天
学习·游戏引擎
suanday_sunny14 小时前
VSCode运行,各类操作缓慢,如何清理
ide·vscode·编辑器
信计小白14 小时前
vscode报Module containing this breakpoint has not yet loaded
ide·vscode·编辑器
与火星的孩子对话15 小时前
Unity3D开发AI桌面精灵/宠物系列 【三】 语音识别 ASR 技术、语音转文本多平台 - 支持科大讯飞、百度等 C# 开发
人工智能·unity·c#·游戏引擎·语音识别·宠物