当前位置:网站首页>【Unity入门计划】基本概念(8)-瓦片地图 TileMap 01
【Unity入门计划】基本概念(8)-瓦片地图 TileMap 01
2022-08-03 15:48:00 【flashinggg】
目录
3.3 Detect Chunk Culling Bounds 如何检测边界
1 TileMap概念
Tilemap就是被用来创造2D游戏世界地图的,常见的侧视、俯视、斜45度视角的2D游戏地图绘制都可以用它来实现。
主要思想
将游戏世界的每一种地形绘制成单独的整块,例如RubyAdventure项目资源中就提供了不同地形可以用来生成Tile的精灵:


用正方形、菱形或者六边形三者之一作为每一块的形状把整块分隔开,再像瓦片/瓷砖一样拼接起来。关于具体是如何分割的,后续会进行介绍。
优点
提高了美术资源的重用性,而且用这样一个工具可以大大简化地图绘制的工作量。
创建的层级
一般在一个2D游戏项目中,Tilemap创建会分成三个层次
- background——地图背景
- bound——边界
- foreground——前景,主要是地形
2 Unity中的TileMap
Unity中TileMap是作为一个游戏对象被使用的,用以储存和处理Tile Assets,它更像是一个系统,将Tiles传输到其他相关的组件中。
Unity中的TileMap由五个部分组成:
2.1 自动父级Grid 网格
创建一个Tilemap:
GameObject -> 2D Object ->Tilemap选择类型
当我们按照这个路径创建一个瓦片地图时,Unity会自动创建一个当前瓦片地图对象的父级对象(默认名称叫Grid),这个Grid就相当于一个个相连网格的合集,每个网格会存放一个Tile,Grid的Cell Size等属性可以改变网格的尺寸。

2.2 Sprite精灵
在【Unity入门计划】基本概念(6)-精灵渲染器 Sprite Renderer介绍了什么是精灵,它其实就是一个2D的Texture容器。
2.3 Tile 瓦片
瓦片包含一个精灵以及两个组件。创建方法:
Project窗口 -> Create -> 2D -> Tiles选择类型

新建的Tile需要给它一个精灵,也就是给它一个纹理。Select中选择精灵即可。还可以改变它的碰撞体类型,默认是Sprite精灵。
2.4 Tile Palette 调色板
可以快速地进行瓦片地图的绘制,创建方式有两个:
第一,从Project面板创建
Project窗口 -> Create -> 2D -> Tile Palette选择类型
第二,创建了Tilemap后,从Scene打开Palette窗口面板创建

二者都需要选择存储的文件路径。
2.5 Brush 笔刷
调色板中用以绘制瓦片地图的工具。

3 Tilemap Renderer 瓦片地图渲染器

它是Tile Map游戏对象中的一个部分,跟精灵渲染器之于精灵一样,它也用来控制当前Tile在Tilemap上的渲染,有以下属性.
3.1 Sort Order 瓦片排列顺序
这个很简单,就是规定每个Tile在整个Tilemap上的排列顺序。通过图层顺序体现前后关系。
3.2 Mode 渲染模式
渲染模式有两种
Chunk 分块渲染
使用分块模式进行批量渲染,这也是默认的渲染方式,选择Chunk后渲染器会按位置将瓦片进行分组,将瓦片上的精灵一起批处理渲染,可以在瓦片地图中获得最佳渲染性能。
Individual 单独渲染
单独渲染每个瓦片并考虑位置和排序顺序。
3.3 Detect Chunk Culling Bounds 如何检测边界
有两个值,Auto和Manual,自动和手动。默认是自动监测。此时渲染器会自动检查使用的精灵。当选择Manual时需要输入提出边界拓展的值。
3.4 Mask Interaction 遮罩
这里跟精灵渲染器的类似,就不赘述,用到了就知道是什么作用了。
3.5 Material 材质
定义用于渲染精灵纹理的材质。
剩下的就是图层关系了,不赘述。
4 瓦片地图的创建流程
4.1 创建Sprite&Tile
首先需要有个想要成为瓦片地图元素的瓦片Tile,还需要精灵作为纹理,因此通常会传入一个2D图片作为精灵。
例如RubyAdventure官方教程中就给出了一个PNG纹理素材,导入并将Type改为Sprite

下面是创建Tile,按照2.3中的创建思路创建一个Rule Tile基础瓦片,命名为BrickTile,并把刚才创建的精灵赋给他。


4.2 创建Tilemap&Tile Palette
GameObject -> 2D Object ->Tilemap创建Rectangular类型的瓦片地图,同时自动创建了父级Grid。
点开Palette Window,新建一个Palette命名为GamePalette,并将之前创建的Tile拖进去。


4.3 可以开始绘制瓦片地图

4.4 问题处理:Grid有缝隙
如下,瓦片没有填充满整个Grid

更改Tilemap精灵的像素大小,更改成64即可。

修改后的结果:

这是初始创建瓦片地图的方法,但对于一般项目而言,提供的会是多个瓦片的集合,02部分会介绍关于Tile的其他方面的内容。
边栏推荐
- 小熊派——无线联网开发
- 49 万奖金等你来拿!第四届实时计算 Flink 挑战赛启动,Beyond Stream Processing!
- STM32H743VIT6配置ADC为1M采样率
- Js array method is summarized
- 5 v 8.4 v1A charging current charging management IC
- 一次做数据报表的踩坑经历,让我领略了数据同步增量和全量的区别
- ruoyi若依框架@DataScope注解使用以及碰到的一些问题
- MATLAB gcf figure save image with black background/transparent background
- 【数据库数据恢复】SqlServer数据库无法读取的数据恢复案例
- ECCV 2022 | Relational Query-Based Temporal Action Detection Methods
猜你喜欢

使用Make/CMake编译ARM裸机程序(基于HT32F52352 Cortex-M0+)

Phaser(二):小恐龙跑酷游戏

After the cnpm installation is successful, the prompt is not an internal and external command, nor is it a runnable command solution

美国国防部更“青睐”光量子系统研究路线

一次做数据报表的踩坑经历,让我领略了数据同步增量和全量的区别

Internship Road: Documenting Confusion in My First Internship Project
![[微信小程序开发者工具] × #initialize](/img/38/ea90525f53de3933a808f0d75028b0.png)
[微信小程序开发者工具] × #initialize

如何将二维空间先验注入到ViT中? UMA&港理工&阿里提出SP-ViT,为视觉Transformer学习2D空间先验知识!...

ModelWhale 云端运行 WRF 中尺度数值气象模式,随时随地即开即用的一体化工作流

深入浅出Flask PIN
随机推荐
无内鬼,来点干货!SQL优化和诊断
cmd 关闭端口
语音识别新一轮竞争打响,自然对话会是下一个制高点吗?
深度学习——安装CUDA以及CUDNN实现tensorflow的GPU运行
C#.NET 国密数字信封
Yii2安装遇到Loading composer repositories with package information
MySQL中的基数是啥?
2021年12月电子学会图形化四级编程题解析含答案:质数判断器
CS免杀姿势
leetcode-105 从前序与中序遍历序列构造二叉树-使用栈代替递归
No inner demons, to dry!SQL optimization and diagnosis
如何选择合适的损失函数,请看......
深入浅出Flask PIN
2021年12月电子学会图形化四级编程题解析含答案:聪明的小猫
leetcode: 899. Ordered Queue [Thinking Question]
Essentially a database data recovery 】 【 database cannot read data recovery case
sql注入之报错注入(精简详细)
方舟开服工具、服务器教程win
美国国防部更“青睐”光量子系统研究路线
A new round of competition for speech recognition has started. Will natural dialogue be the next commanding height?