Tilemap

个人博客原文

Tilemap是一种地图编辑方式,使用Tilemap可以让我们就像搭积木一样快速搭建地图。
许多2D游戏都是使用的这样的方式构建地图,例如: 泰拉瑞亚,蔚蓝,甚至是饥荒

Unity在2017版本引入Tilemap组件,并在随后的几年版本里逐渐完善。

RuleTile

但是我们今天要讲的不是Tilemap,而是Tilemap的进阶工具-RuleTile。

在使用Tilemap搭建地图时,我们会发现这样还是太低效了,我们的2D地图是有特定规则的,例如地表的瓦片和地底的瓦片不同,中间的瓦片和两边的瓦片不同。

有没有办法,让计算机帮我们计算这些规则,而我们只需要勾勒出地图轮廓呢。
还真有,不过需要我们下载Unity的2D扩展包,里面包含了RuleTile。

安装2d-extras

2d-extras GitHub地址

有两种下载方式

  1. 下载压缩包并解压到Unity项目Assets文件夹中。
  2. 下载仓库并添加到Unity的包管理器。 -具体方式见2d-extras的README

添加到项目里面之后,我们会发现在Creat最上面有一个2D选项,我们可以在那里选择创建各种瓦片或者笔刷。

使用RuleTile

开始搭地图,一张相对完整的Tilemap需要7种基础瓦片。

7种瓦片经过旋转和组合就可以构成一个2D游戏地图了。

接下来开始创建2D地图

  1. 建空项目
  2. 添加2d-extras
  3. 添加Tilemap到场景
  4. 添加7种基础瓦片图片
  5. 创建一个RuleTile并设定显示规则
  6. 创建画板,添加刚刚的RuleTile
  7. 画地图

RuleTile设置


瓦片规则的设置特别简单,就是设置那个九宫格。
绿箭头代表有格子,红叉代表没有格子。我们根据每种瓦片的显示一条条设置就行。
九宫格中间可以设置旋转,这样我们就不用自己设置旋转之后的规则了。

例如:
第一条规则,当该瓦片上边和左边没有瓦片,且下边和右边有瓦片时,显示右侧精灵图。
如果旋转该瓦片之后也符合规则,则旋转精灵图并显示。

再比如:
第三条规则,如果四边都没有瓦片,就显示该精灵图。并且没有设置旋转。

最终效果如下

项目地址

Unity版本: 2019.2.17f1
项目GitHub地址

后言

Tilemap 不仅可以把2D图片当成瓦片,一样支持3D物体甚至是动画。
我们可以把一些效果做成预制体,然后当成瓦片刷上去,还是有很大的发挥空间的。

参考

  1. Unity官方文档
  2. Unity中使用Tilemap快速创建2D游戏世界

2D游戏神器-RuleTile相关推荐

  1. 浅谈2D游戏设计模式--游戏剧情设计(1)

    博主不才,人生有2大爱好,写程序和玩游戏,本人玩的又是一款2D的在旁人看来弱智的网络游戏. 这款游戏在中国的名称叫做冒险岛,不知道园子里有没有人玩过. 我打算有空的话,就把我玩游戏中的心得和程序结合起 ...

  2. Unity 2D游戏开发教程之摄像头追踪功能

    Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...

  3. 微信小游戏开发教程-2D游戏原理讲解

    微信小游戏开发教程-2D游戏原理讲解 原理 为了更加形象的描述,这里先上一张图: 背景 a. 首先,我们看到背景好像是一张无限长的图片在向下移动.实际则不然,这是一张顶部和底部刚好重叠的图片.这是一种 ...

  4. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

    Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...

  5. Unity 2D游戏开发教程之为游戏场景添加多个地面

    Unity 2D游戏开发教程之为游戏场景添加多个地面 为游戏场景添加多个地面 显然,只有一个地面的游戏场景太小了,根本不够精灵四处活动的.那么,本节就来介绍一种简单的方法,可以为游戏场景添加多个地面. ...

  6. Unity 2D游戏开发教程之精灵的死亡和重生

    Unity 2D游戏开发教程之精灵的死亡和重生 精灵的死亡和重生 目前为止,游戏项目里的精灵只有Idle和Walking这两种状态.也就是说,无论精灵在游戏里做什么,它都不会进入其它的状态,如死亡.于 ...

  7. ​Unity 2D游戏开发教程之2D游戏的运行效果

    ​Unity 2D游戏开发教程之2D游戏的运行效果 2D游戏的运行效果 本章前前后后使用了很多节的篇幅,到底实现了怎样的一个游戏运行效果呢?或者说,游戏中的精灵会不会如我们所想的那样运行呢?关于这些疑 ...

  8. Unity 2D游戏开发教程之使用脚本实现游戏逻辑

    Unity 2D游戏开发教程之使用脚本实现游戏逻辑 使用脚本实现游戏逻辑 通过上一节的操作,我们不仅创建了精灵的动画,还设置了动画的过渡条件,最终使得精灵得以按照我们的意愿,进入我们所指定的动画状态. ...

  9. 配置JDKAndroid 2D游戏引擎AndEngine

    配置JDKAndroid 2D游戏引擎AndEngine JDK全称为Java Development Kit(也即Java开发包),是用于支持Java 编程的基础.无论是什么编程,只要用到了Java ...

最新文章

  1. 09_Java面向对象_第9天(类、封装)_讲义
  2. Sql 语句中 IN 和 EXISTS
  3. 使用canvas操作图像
  4. ckeditor 在dwz里面使用
  5. C#与java可以共用的DES加密解密
  6. python 生成时间序列
  7. MSIL实用指南-返回结果
  8. 为什么孙悟空能大闹天宫,却打不过路上的妖怪?
  9. 前端学习(710):命名规范和语法格式
  10. vscode运行python文件_vscode怎么运行python文件
  11. android 加载layout,Android自定义View加载视图之LoadingLayout
  12. 提取SHP格式文件折点(拐点)地理坐标(经纬度)
  13. 一个浏览图片新闻的App
  14. 【WeUI】关于jQuery WeUI和WeUI版本兼容的问题
  15. Ant design vue 表格合并 合并行 合并列
  16. 以中国南方航空为竞品结构化分析并设计航空购票网页
  17. PWM、SPWM、SVPWM的个人理解
  18. 人工智能开源项目推荐
  19. idea一直卡在build不动
  20. 微信小程序学习之路(一)

热门文章

  1. SLAM让你如何去理解这个世界
  2. 基于Python爬虫的垂直搜索引擎设计与实现
  3. Azkaban详细介绍
  4. Win10系统怎么打开网上邻居
  5. java计算机毕业设计广西科技大学第一附属医院陪护椅管理MyBatis+系统+LW文档+源码+调试部署
  6. 解决微信昵称含特殊表情或字符无法存入数据库异常
  7. 对北京奥组委的做法表示不满,开幕式门票渐行渐远……
  8. 宝付大叔的辛酸创业史
  9. JavaScript获取当前月的最后一天
  10. linux互联网远程控制,VNC远程控制LINUX 之一