Unity2D 自定义Scriptable Tiles的理解与使用(三)——开始着手构建一个基于Tile类的自定义tile(上)

本文章使用的为 Unity201Unity版本8.4.36f1,脚本语言为C#

引言:

在上篇文章中,我们学习了Tile类的相关知识,了解了继承自Tile类的好处。那么现在,激动人心的时刻终于来了,我们要自己创建一个自定义瓦片了!在这篇文章中,我们将会一步步地实现一个带有简单功能的自定义瓦片。

正文:

首先先确定我们的目标,在这个文章中我们的目标是建立一个有如下功能的瓦片:

1.可以根据上下左右相邻的格子状态(有无瓦片)来确定要显示的图片。

(其实这个功能基本就是Pipeline瓦片的功能,而且是RuleTile功能的简化版,之所以要实现这个功能是因为这个功能简单,方便展示)

2.可以附加一个小人模样的游戏对象,并且每个小人的颜色都是随机得到的。

好那开始构建我们的瓦片

首先创建一个脚本资源,我在这里把它命名为MyTile。(other文件夹是和该文章无关的文件夹,直接忽视就好),如下图所示:

然后双击脚本进入脚本编辑界面(我这里用visual studio 2019),如下图所示:

我们先将Start方法和Update方法删掉。

接着我们需要引用UnityEngine.Tilemaps命名空间,这样我们就可以调用和Tilemap相关的API了。接着我不再让这个脚本继承自MonoBehaviour,而是改为继承自Tile,如下图所示:

 好,以上的步骤完成之后,我们先来实现我们想要的第一个功能,这个功能要求要根据上下左右的格子有无瓦片(这个瓦片是专指我创建的Mytile瓦片,其他的任何系统自带瓦片或自定义瓦片不包括在内)来确定瓦片所展现的图像。

以下为功能细节设想:

我们先在任意位置放置一个瓦片,如下为示意图:

这时瓦片上下左右都没有瓦片, 我就想让该瓦片呈现默认图像(竖着的道路)。如果我在这个瓦片右边再放一个瓦片,普通的瓦片会是这样的:

 而我想要的效果显然是这样的,请看gif动图

应该变为两个横着的道路

要想实现这个功能,首先我们来看看一下整个过程中发生了什么事。

一开始场景中已经有一个方块了,然后我的笔刷接近这个方块,在接近的一瞬间,发生了两件事:

1.笔刷控制的方块的图像改变了(从原来竖着的变为横着的)

2.这个已有的方块的图像也改变了(从原来竖着的变为横着的)

不仅笔刷所在的位置的瓦片图像改变了,它相邻的方块图像也改变了。所以我们不仅要让笔刷位置的瓦片进行刷新,还要让它相邻(上下左右)的瓦片也进行刷新。

还记得这个系列的第一篇文章里写到的RefreshTile方法吗,我们现在应该知道要想实现这个功能,要怎么写这个方法了。

先把这个

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值