Tilemap

Tilemap 组件是一个存储和处理瓦片资源以便创建 2D 关卡的系统。此组件将所需信息从放置在组件上的瓦片传输到其他相关组件,例如 Tilemap Renderer 和 Tilemap Collider 2D。

将此组件与 Grid 组件(或父 Grid 游戏对象)结合使用可在相关网格上布置瓦片。在创建瓦片地图(菜单:GameObject > 2D Object > Tilemap)时,Unity 自动创建 Grid 游戏对象并将其设置为子 Tilemap 游戏对象的父级。

属性 功能
Animation Frame Rate Unity 播放瓦片动画的速率。增加或减少此值会根据等效因子更改速度(例如,如果将此值设置为 2,Unity 将以两倍速度播放瓦片动画)。
Color 使用所选颜色为此瓦片地图上的瓦片进行着色。设置为白色时,Unity 会渲染没有色调的瓦片。
Tile Anchor 此瓦片地图上瓦片的锚定偏移。通过调整位置值可以偏移关联网格上瓦片的单元格位置。
Orientation 瓦片地图上瓦片的方向。如果需要在特定平面上定位瓦片(尤其是在 3D 视图中),请使用此属性。
XY Unity 在 XY 平面上定位瓦片。
XZ Unity 在 XZ 平面上定位瓦片。
YX Unity 在 YX 平面上定位瓦片。
YZ Unity 在 YZ 平面上定位瓦片。
ZX Unity 在 ZX 平面上定位瓦片。
ZY Unity 在 ZY 平面上定位瓦片。
Custom Unity 根据下方参数设置的自定义方向矩阵设置来布置瓦片,当选择此选项时,这些设置将变为可编辑。
- Position 显示当前方向矩阵的位置偏移。只有在 Tilemap 的 Orientation 设置为 Custom 时才能编辑此属性。
- Rotation 当前方向矩阵的旋转。只有在 Tilemap 的 Orientation 设置为 Custom 时才能编辑此属性。
- Scale 当前方向矩阵的缩放。只有在 Tilemap 的 Orientation 设置为 Custom 时才能编辑此属性。

瓦片地图工作流程

以下是创建和绘制__瓦片地图__的一般工作流程:

1.创建 Tilemap 游戏对象。此过程还会自动创建 Grid 游戏对象。 2.直接创建瓦片资源,或从精灵生成瓦片。 3.使用所选的__瓦片资源__创建瓦片面板。 4.使用__瓦片面板__在__瓦片地图__上进行绘制。 5.(可选)将 Tilemap Collider 组件连接到瓦片地图以便使瓦片地图与 Physics2D 交互。

Unity 还支持特殊类型的瓦片地图,例如六边形 (Hexagonal) 和等距 (Isometric) 瓦片地图。有关这些瓦片地图的具体工作流程,请参阅各自页面上的文档。

瓦片资源(Tile Assets)

瓦片__是排列在__瓦片地图__上的__资源,用于构建 2D 环境。每个瓦片引用一个选定的__精灵__,然后在瓦片地图网格上的瓦片位置处渲染该精灵。

资源属性

属性 功能
Preview 显示包含所选__精灵__的瓦片的视觉效果预览。
Sprite 选择要在此瓦片上渲染的精灵纹理。单击右侧的圆圈图标可打开对象选择器窗口,然后从可用的精灵资源中进行选择,或者将精灵直接拖到此框中。
Color 使用所选颜色为此瓦片地图上放置的瓦片进行着色。设置为白色时,将渲染没有色调的瓦片。
Collider Type 定义为瓦片生成的碰撞体的形状。
- None 不生成碰撞体。
- Sprite 基于所选__精灵__的轮廓生成碰撞体形状。
- Grid 碰撞体形状基于__瓦片地图__的单元格。单元格的形状取决于为瓦片地图选择的单元格布局。

瓦片地图渲染器 (Tilemap Renderer)

Tilemap Renderer 组件是 Tilemap 游戏对象的一部分。此组件可控制__瓦片地图 (Tilemap)__ 上设置的__瓦片 (Tiles)__ 的渲染方式。

属性 功能
Material 定义用于渲染精灵纹理的材质。
Sort Order 设置所选瓦片地图上的瓦片排序方向。
Mode 设置渲染器的渲染模式。
- Chunk 渲染器按位置对瓦片进行分组,并将瓦片的精灵一起批处理以进行渲染。选择此模式可在瓦片地图中获得最佳渲染性能。
- Individual 渲染器单独渲染每个瓦片,同时还会考虑它们的位置和排序顺序。此模式使瓦片上的精灵能够与场景中的其他渲染器或与自定义排序轴进行交互。
Detect Chunk Culling Bounds 确定渲染器如何检测用于剔除瓦片地图块的边界。这些边界可扩展瓦片地图块的边界,以确保在剔除过程中不会裁剪过大的精灵。
- Auto 渲染器会自动检查瓦片使用的精灵,以确定要使用的扩展剔除边界。
- Manual 用于扩展边界以剔除瓦片地图块的值是手动设置的,而不使用 Editor 的自动检测功能。
Chunk Culling Bounds (选择“Manual”时) 输入剔除边界扩展的值(采用 Unity 单位)。
Sorting Layer 设置瓦片地图的排序图层 (Sorting Layer)。从下拉框中选择现有的排序图层,或创建新的排序图层。
Order in Layer 设置瓦片地图在其排序图层中的渲染优先级。首先渲染编号较低的图层。编号较高的图层叠加在前者之上。
Mask Interaction 设置瓦片地图渲染器 (Tilemap Renderer) 在与精灵遮罩交互时的行为方式。
- None 瓦片地图渲染器不与场景中的任何精灵遮罩交互。这是默认选项。
- Visible Inside Mask 瓦片地图在精灵遮罩覆盖瓦片地图的地方是可见的,而在遮罩外部不可见。
- Visible Outside Mask 瓦片地图在精灵遮罩外部是可见的,而在遮罩内部不可见。精灵遮罩会隐藏其覆盖的精灵部分。

创建瓦片

可使用两种方法在 Unity 中创建__瓦片 (Tile)__ 资源;第一种方法是从 Assets 菜单直接创建瓦片资源。第二种方法是从一组精灵自动生成瓦片资源。

从 Asset 菜单中创建瓦片资源

直接从 Assets 菜单中创建瓦片 (Assets > Create > Tile)。系统将提示命名并将新的瓦片资源保存到您选择的位置。


创建好 Tile1,在 Inspector 中添加 Sprite。即可新建好瓦片资源。

从瓦片面板 (Tile Palette) 生成瓦片资源

在 Tile Palette 窗口中为瓦片面板选择精灵时,可以自动生成瓦片。要创建新的瓦片面板 (Tile Palette),请在 Tile Palette 窗口中选择 Create New Palette__,然后选择 Create__。

在 Create New Palette 窗口中提供了以下选项。

属性 功能
名称 为创建的瓦片面板资源提供一个名称。
Grid 选择要将创建的瓦片面板绘制到的网格布局。
- Rectangle 如果要为默认矩形瓦片地图创建面板,请选择此选项。
- Hexagon 如果要为六边形瓦片地图 (Hexagonal Tilemap) 创建面板,请选择此选项。
- Isometric 如果要为等距瓦片地图 (Isometric Tilemap) 创建面板,请选择此选项。请参阅创建用于等距瓦片地图的瓦片面板以了解更多信息。
- Isometric Z as Y 如果要为 Isometric Z as Y Tilemap 创建面板,请选择此选项。请参阅创建用于等距瓦片地图的瓦片面板以了解更多信息。
* Hexagon Type (仅当 Grid 类型设置为 Hexagon 时可用) 选择要将瓦片面板绘制到的六边形瓦片地图的类型。请参阅有关六边形瓦片地图的文档以了解更多信息。
Cell Size 要将瓦片绘制到的单元格的大小。
Automatic Cell Size 以 Unity 单位自动设置,并基于用于创建瓦片资源的精灵的大小。如果有多个瓦片,则会调整 Cell Size 以匹配面板左下角的第一个瓦片,使其完全适合单元格。
Manual 选择此选项可输入自定义大小值。

创建或加载瓦片面板后,请将 Assets 文件夹中的__纹理__或__精灵__拖放到瓦片面板上。

提供面板名称,然后选择 Create 按钮。选择一个文件夹来保存面板。新创建的面板会自动加载。

编辑瓦片面板 (Tile Palette)

用于在瓦片地图上绘制瓦片的面板工具也可用于在面板本身中编辑瓦片的放置位置。从下拉菜单中选择一个面板,然后单击 Edit 将面板解锁以进行编辑。


系统将提示输入新瓦片资源的保存位置。选择保存位置,因此会在所选文件夹中将生成新的瓦片资源,并会将瓦片放置在瓦片面板中。

创建瓦片地图 (Tilemap)

从 GameObject 菜单中创建默认的__瓦片地图__(菜单:GameObject > 2D Object > Tilemap)。

选择 Tilemap 选项后,在场景中将会创建一个新的 Grid 游戏对象,其中包含 Tilemap 子游戏对象。Grid 游戏对象决定了其子 Tilemap 的布局。

Tilemap 子游戏对象由 Tilemap 组件和 Tilemap Renderer 组件组成。Tilemap 游戏对象是绘制瓦片的地方。


选择 Grid 游戏对象或 Tilemap 游戏对象来创建其他 Tilemap,然后选择菜单:GameObject > 2D Object > Tilemaps__,或右键单击所选的游戏对象并选择 2D Object__ > Tilemap

然后会创建一个 Tilemap 游戏对象并将其作为 Grid 父游戏对象的子项添加到 Hierarchy 窗口中(即使原来选择了同级 Tilemap 游戏对象也是如此)。
创建 Tilemap 后,请调整 Grid 属性设置以调整其 Tilemap 子项的属性。Grid 父游戏对象中的更改会影响所有具有瓦片地图 (Tilemap)、瓦片地图渲染器 (Tilemap Renderer) 和瓦片地图 2D 碰撞体 (Tilemap Collider 2D) 组件的子游戏对象。

在瓦片地图上绘制

要开始绘制瓦片,请从 Tilemap Palette 窗口中的 Active Tilemap 下拉选单中选择要绘制瓦片的瓦片地图。场景层级视图中创建的瓦片地图会自动添加到下拉菜单中。只有选定的有效瓦片地图 (Active Tilemap) 会受瓦片面板 (Tile Palette) 绘制工具的影响。

瓦片地图绘制工具位于 Tile Palette 窗口顶部的一行中。这些工具也用于编辑瓦片面板 (Tile Palette) 本身。

绘制工具快捷键

瓦片地图 2D 碰撞体 (Tilemap Collider 2D)

可将 Tilemap Collider 2D 组件添加到 Tilemap 游戏对象来为相应 Tilemap 组件中设置的每个__瓦片 (Tile)__ 生成__碰撞体 (Collider)__ 形状。在 Tilemap 组件中添加或删除瓦片时,Tilemap Collider 2D 组件会在 LateUpdate 期间更新碰撞体形状。

为 Tilemap 组件中的每个瓦片生成的碰撞体形状取决于瓦片资源中设置的所需碰撞体类型。

Collider Type 功能
None Tilemap Collider 2D 组件不会为此瓦片生成任何碰撞体形状。
Sprite Tilemap Collider 2D 组件基于分配给瓦片的精灵生成碰撞体形状。碰撞体形状可以是为精灵设置的自定义物理形状,也可以是从精灵轮廓生成的近似形状。
Grid Tilemap Collider 2D 组件基于网格单元格的形状(由 Grid 组件的选定单元格布局 (Cell Layout) 确定)生成碰撞体形状。

此碰撞体与 Composite Collider 2D 组件结合使用。要将相邻瓦片的碰撞体形状合成在一起,请将两者添加到同一 Tilemap 组件。这样可以平滑相邻瓦片中碰撞体形状之间的角和边。

这样做还可以提高 Tilemap Collider 的性能,因为物理更新中涉及的单独碰撞体形状更少。如此将减少所需的计算量。

学习参考网站链接:Unity Tilemap

Unity 学习 Tilemap相关推荐

  1. Unity学习记录——模型与动画

    Unity学习记录--模型与动画 前言 ​ 本文是中山大学软件工程学院2020级3d游戏编程与设计的作业7 编程题:智能巡逻兵 1.学习参考 ​ 除去老师在课堂上讲的内容,本次作业代码与操作主要参考了 ...

  2. Unity学习2:如何实现个性化渲染平面(图文详细)

    Unity学习2:如何实现个性化渲染平面(图文详细) AR Plane Manager(平面追踪对象管理器) 可视化平面 个性化渲染平面 AR Plane Manager(平面追踪对象管理器) 平面管 ...

  3. Unity学习笔记(4)-----粒子效果的实现

    Unity学习笔记(4)-–粒子效果的实现 一.效果展示 下面用若干张张动图展示效果: 大概就是这样,并不是很难. 实际效果要比图中的好一点(顺畅得多). 实现步骤 大致可以分为如下几个步骤,然后逐个 ...

  4. unity学习之路—飞机大战

    unity学习之路-飞机大战 这是我第一次进行博客写作,准备把前段时间写的<飞机大战>游戏的制作过程写出来,一方面为自己知识的梳理,另一方面是为分享,当然,前几次写出来的结果肯定很烂,只会 ...

  5. Unity学习shader笔记[一百]简单焦散Caustic效果

    焦散是模仿光透过水底的一个投影景象 有两个版本,改版最后效果如下 这里是简单的基于物体的焦散,基于水体的焦散思路是水面物体的shader中拿到ColorBuffer,然后用水体的屏幕空间坐标取采集Co ...

  6. Unity学习笔记1 简易2D横版RPG游戏制作(一)

    这个教程是参考一个YouTube上面的教程做的,原作者的教程做得比较简单,我先参考着做一遍,毕竟我也只是个初学者,还没办法完全自制哈哈.不过我之前也看过一个2D平台游戏的系列教程了,以后会整合起来,做 ...

  7. Unity学习之Human fall flat创意工坊地图制作

    Unity学习笔记之Human fall flat 主要参考<人类一败涂地>官方教程 Unity版本 详细教程获取 开始工程导入 素材包介绍 界面介绍 工具简介 常用组件简介 多人游戏组件 ...

  8. [Unity 学习] Unity 入门学习及第一个游戏

    [Unity 学习] Unity 入门学习及第一个游戏 跟着教程做的一个小游戏,基本上说就算我这样的零基础,两个小时就能实现. 主要就是熟悉一下 C#和 Unity,做一个能跑的东西. 简单的 Dem ...

  9. 【Unity学习笔记】[Unity中文课堂教程] C#中级编程代码

    [Unity学习笔记][Unity中文课堂教程] C#中级编程代码 最近想补一补C#基础,Unity官方的C#中级编程教程质量很高,于是开个帖子把跟着敲+记录了部分价讲解和我自己的理解的代码存在这 原 ...

最新文章

  1. python isnumber_Python正课18 —— 基本数据类型 - 字符串类型
  2. MAC itunes无法验证服务器s.mzstatic/itunes无法更新服务器解决方案
  3. 第一阶段 07类与对象
  4. 第十三天-linux正则表达式及重点命令
  5. 对已经add的文件不在跟踪
  6. 数字头盔摄像头是一个智能选项
  7. spring boot 与配置
  8. 为什么下一个十年的主战场在Serverless
  9. 【转】C# DateTime.Now详细用法
  10. Zotero使用记录----1 下载与安装
  11. java 动态性之反射机制 详解 案例,mybatis字段映射原理
  12. 360安全浏览器支持国密功能
  13. 批量删除QQ空间说说
  14. Openwrt开发笔记(3)—— 修改路由的网关地址和无线SSID 密码
  15. 川大计算机学院李川,川大计算机学院硕导名单_跨考网
  16. W99、阿里大学征服路 - W系列总纲
  17. C# json解析字符串总是多出双引号_json从立地到成佛
  18. 链安团队漏洞分析连载(第一期)一一溢出漏洞
  19. (转载)从鼠尾草凋谢看中国花花世界的阴影(附EmilMatthew的评论)
  20. ps无法启动因为计算机中丢失api ms,解决win8下ps提示“丢失api-ms-win-crt-runtime-l1-1-0.dll”的方法...

热门文章

  1. android紫禁城一日游的代码,故宫旅游app下载-故宫旅游 安卓版v3.3.6-PC6安卓网
  2. 流利说英语level4_英语流利说level4原文graph?分享一下我的经验?
  3. 产品经理:能不能让这串数字滚动起来?
  4. 年终总结 | 怎样识别并投资高效能人才?
  5. android高德hud导航,教你一招,手机导航秒变HUD抬头显示
  6. 30分钟学会js新特性
  7. seo与sem的关系和区别
  8. 计算机安全意识小故事,求一篇关于消防救火的事迹,消防安全小故事
  9. android关于消防栓的正确使用
  10. android 开游艇游戏,游艇狂飙游戏-游艇狂飙安卓版预约_第一手游网