今天使用了一下2020版本的unity。做一个2D的游戏场景。由于公司软件一直停留在5.X时代,很多新版本功能并没有用到。这次用了新版本,感觉发现了新大陆了。
目的:做一个2D的游戏场景。使用的是2020.3.0f1版本。
方法:使用Tilemap功能。
过程如下:更多内容请关注:unity风雨路
首先新建一个新工程,最初选择2D的项目。然后新建一个2D场景。
然后到Hierarchy面板里2D Object---Tilemap--Rectangular。最后这几项选择意思是分别建造不同的网格。
如果使用第一个规则的那就是方格的如图:
现在所能看到的网格就是用来制作2D场景的。之后只需要将场景中对应的sprite画进去就可以了。
那么如何画进去。必须要有Tile palette。在window--2d--Tile Palette里。如下:
打开之后新建一个palette,如下,接下来只需要将对应的sprite图片拖进去就可以。
例如我拖进去一个背景。然后点击笔刷按钮,再将笔刷移动到scene视图里,会看到这个背景就被画进了scene里。
之后我们在新建一个Tilemap用来放置可交互的场景物体。例如道路、桥梁等等。
同样的再拖一个sprite进入画板里。这是一个桥的图像。
然后选择新建的Tilemap这个层。再次点击笔刷把新图像画进去。拖动笔刷会刷出很多物体在网格里。如果画多或者画错了可以点击橡皮工具擦掉也可以选择画笔然后按住shif+左键取消。和制作地形的操作方法是一样的。如下图:
然后给场景里的交互物体加碰撞
因为新的Tilemap这个层也就是Tilemap(1)这个是用来交互的物体。所以直接给他添加Tilemap collider2d的组件。这样就已经实现了碰撞功能。
我们测试一下,在2D OBJECT--Physics--dynamic sprite里新建一个动态的sprite。这个新建的物体是自动带刚体和碰撞的,也就是可以测试碰撞的。
然后选择个颜色为了测试看得效果明显。此处案例为红色。如图:
运行效果如图:
很明显有了碰撞效果。但是这个碰撞是针对真个层的。如果要有很细化的物体碰撞可以继续添加Composite collider2d这个时候会自动给层添加一个RIgidbody2d,但注意要修改BODY TYPE为静态,如图:
同时还要勾选上TIlemap collider2d的used by composite选择项,这样就会让碰撞更加精细,也就是只针对于该层的具体有形状的物体增加碰撞而不是整个层。
这样就实现了场景的快速搭建方法。想要添加任何的场景物体都可以使用该方法。比起手动一个个摆放物体方便多了。