设为首页收藏本站

微软Hololens全息现实网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

一键登录:

查看: 1521|回复: 1

Unity 2D之Tile Map使用指南

[复制链接]
发表于 2016-6-23 23:00:40 | 显示全部楼层 |阅读模式

之前为大家介绍了带有2D新功能的Unity预览版,众多开发者都对其中的Tile Map很感兴趣,今天我们就为大家详细介绍Tile Map的使用指南。 如何创建Tile Map1.  依次点击菜单项GameObject > 2D Object > Tile Map创建Tile Map 2.  此时场景中会出现一个带子节点的Ga...

之前为大家介绍了带有2D新功能的Unity预览版,众多开发者都对其中的Tile Map很感兴趣,今天我们就为大家详细介绍Tile Map的使用指南。


如何创建Tile Map

1.  依次点击菜单项GameObject > 2D Object > Tile Map创建Tile Map



726fbdc20e23931d383151bbc65cab86.jpg

2.  此时场景中会出现一个带子节点的GameObject。这个GameObject被命名为Tile Map并带有Grid组件,用于决定所有Tile Map子节点的布局。这个GameObject的子节点被命名为Layer,Layer包含Tile Map 和 Tile Map Renderer组件。这个Layer就是瓦片地图的画布。


3.  在Tile Map中新建Layer的方法是,选定Tile Map或者Layer对象,在层级视图中右键点击2D Object > Tile Map,或者依次点击菜单项GameObject > 2D Object > Tile Map直接新建Tile Map。



012a58a8cc062175211babd4ee3ac04b.jpg

4. 在层级视图中选定对象下方就会新增的名为Layer (*)的GameObject。这个新的Layer同样也是画布。


调整Tile Map的Grid

8429dcf8da91c12317dff6b3fe617d4c.png

1.  选定Tile Map对象的Grid组件。



2.  在检视面板中调整Grid组件。      

a.  Cell Size(单元格尺寸):地图网格中每个单元格的大小      

b.  Cell Gap(单元格间距):地图网格中每个单元格间的距离      

c.  Cell Layout(单元格布局):地图网格的单元格布局方式            

i.   Rectangle(矩形):标准的Tile Map矩形布局            

ii.   Hexagon(六角形):六角形Tile Map布局(网格的可视化工作还未完成,但瓦片贴图可以正常排列)           

iii.  Isometric(等边):Tile Map等边布局           

iv.  Custom(自定义):(开发中)      d.  Cell Swizzle(单元格布局方向调整):将单元格朝向另外的坐标系来布局。例如从XYZ模式切换为XZY模式,Y和Z的坐标将会被对调,所以对Y坐标的输入将会被映射到Z轴,反之亦然。




3.  调整Grid会影响到所有包含Tile Map和Tile Map Renderer组件的子Layer对象。


如何利用Sprite创建Tile1.  依次点击菜单项Window > Tilemap Palette打开Tilemap Palette。


c268c419244fe69dca84b6908b8065f6.png

989f50b1a6dd3d050c94a05a9a16071a.png

2.  在资源窗口中选择将要使用的一个或多个Sprite。

fa5f98cff5df699bec6069b3a845420a.jpg

3.  将选定的一个或者多个Sprite拖拽到Tile Map Palette中。

a59ba072b10cfe36fa99e9bfcb8a85d9.jpg

4.  这时会弹出一个对话窗口,来选择保存新Tile资源的目录。

8d6be1717e8b57df9f7178a3108c4dfd.jpg

5.  选定的文件夹中会生成新的Tile资源,该资源将显示在Tilemap Palette中。

b8e0decd3b6522d19ad31392a0e0f5ec.jpg


6.  也可以单独添加Sprite到Tilemap Palette中。

7.  记得保存项目以确保Tilemap Palette中的配置被保存。

Tile Asset通常瓦片贴图就是由实际的Sprite排列而成。这里的实现方式是使用中间资源来引用Sprite而非直接由Sprite平铺地图。这种方式为瓦片本身提供了多种可能,在瓦片与地图间构建灵活可靠的系统。


1d1d5a72a5affed35b53870710d968e6.jpg

属性说明 Sprite-当前Tile Asset使用的SpriteColor - 用于给材质着色GameObject - 为贴图附加一个游戏对象Flags - 多种标识选项Collider Type - 暂不支持



Tile Map Palette

c4d5374160282abfa21bc2076421a9a8.jpg


●  按住Alt + 鼠标左键平移调色板
●  按住鼠标中键件平移调色板
●  使用鼠标滚轮放大或缩小
●  左键单击选中一个Tile
●  按下左键并拖拽选中多个Tile

1.  单击Tile Map Palette下拉列表的+按钮新建Tile Map Palette

166be26ee2c3229530ef5086b5053720.png

2.  选中下拉列表中的Tile Map Palette对象后右键点击打开菜单,点击菜单中的Edit…来重命名该Tile Map Palette。

353314dc233d582de381176fb7bbbe05.png

3.  选中下拉列表中的Tile Map Palette对象后右键点击打开菜单,点击菜单中的Delete来删除该Tile Map Palette。
4.  注意:默认的 Tile Map Palette无法通过这个方式删除或重命名名。
5.  改动过后切记保存项目!
编辑Tile Map Palette1.  从下拉菜单中选择需要编辑的调色板
2.  点击下拉菜单右边的锁定按钮打开锁进行编辑

10db17c1b3e33e8035470e0a92d3162e.jpg

3.  调整调色板      ○  根据选定的工具,点击Tile来绘制或擦除调色板中Tile      ○  Ctrl-Click选定调色板中的Tile,可以同时选定多个Tile
4.  处理完毕后点击下拉菜单右边的锁按钮来锁定完成编辑的调色板。
5.  记得保存项目来保存编辑的调色板
Tile Map绘制
1.  选定需要绘制的Tile Map来启用绘图工具。

5d55a6b4f62b690655b3f9bf34eec778.png

2.  Tile Map Palette中可以找到用来绘制Tile的绘图工具。

0b3e3ada70eafdad73b8880c91fa9e6d.png

3.  点击绘制工具中的画笔图标,从Tile Map Palette中选定一个Tile然后左键点击场景视图中的Tile Map来进行绘制。

fcc1b1c14f047be0324bde6a35c00b66.png

4.  使用绘制工具可以将选中的所有Tile绘制在场景中,在Tile Map Palette中左键单击并拖拽即可选择相应的Tile。

a29abacac03627cfd2b7f7d0bf4c253b.png


5.  使用绘制工具时,按住Shift会切换为擦除工具。      
628c9c43604c02fc1b77d9728814fc58.png

6.  矩形工具用于在Tile Map中绘制矩形块,并由选定的Tile来填充。
db78d7add2cd27e7407131ff1061f084.png

7.  选取工具用于从Tile Map中选取要绘制的Tile。按下左键并拖拽可以一次选取多个Tile。在绘制工具模式下按住Control就会切换为选取工具。
b931238881335a3485fc90c019b19d34.jpg

8.  填充工具用于将选定区域填充为选定的Tile

2f7623e0717fd9be21fdaf3e7c0da9d8.jpg

024cc64e41701956401deb4e1765b197.jpg

Tile Map 快捷键Shift + 鼠标左键擦除TileCtrl + 鼠标左键选择TileAlt + 鼠标左键平移场景视图 下面这些快捷键只有在场景视图激活时起作用。因此当在调色板中选定了一个Tile,需要右键单击场景视图来激活它。按下Y键将选定的Tile垂直翻转按下X键将选定的Tile左右翻转按下.  (句号) 顺时针旋转按下, (逗号) 逆时针旋转



如何创建可编程的Tile

1.  新建一个BaseTile(或者任何BaseTile的子类如Tile)子类。


2.  在新的Tile类中重写一些必要的方法,通常需要重写的方法如下:      a.  RefreshTile 方法决定了当Tile被加入到Tile Map中,有哪些邻近的Tile需要被更新。      b.  GetTileData方法决定了Tile在Tile Map中的显示。


3.  使用ScriptableObject.CreateInstance<(Your Tile Class)>()来创建新类的实例。可以在编辑器中将这个新的实例转化为资源,这样就可以通过AssetDatabase.CreateAsset()来重复调用新实例。


4.  也可以为新的Tile类自定义编辑器。这与脚本化对象的自定义编辑器方式相同。


5.  记得保存项目确保新的Tile资源得以保存。

(欢迎加入官方QQ讨论群433190386)





上一篇:5分钟使用Unity制作AR应用
下一篇:可视化调试物理碰撞体
发表于 2016-6-23 23:15:41 | 显示全部楼层
太好了!
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

注册验证邮件查收提醒:

由于各大邮箱政策原因,

如果没收到邮件提醒,

您的注册验证邮件可能

被投送到您邮箱的垃圾箱,

请注意查收验证哦


QQ|小黑屋|Hololens全息现实网 ( 京ICP备15026232号   点击这里给我发消息

GMT+8, 2018-9-25 18:55 , Processed in 0.558595 second(s), 30 queries .

Powered by Hololens全息现实网 X3.2

© 2001-2017 Hololens全息现实网

快速回复 返回顶部 返回列表