U3L12-7——Tilemap代码控制相关
U3L12-7——Tilemap代码控制相关
本章关键字
1 | UnityEngine.Tilemaps //Tilemap相关所需的命名空间 |
获取Tilemap和TileBase和Grid
- Tilemap组件:用于管理瓦片地图
瓦片地图信息 可以通过它得到瓦片格子 - TileBase组件:瓦片资源对象基类
瓦片资源基类通过它可以得到瓦片资源 - Grid组件:用于坐标转换
格子位置相关控制 可以通过它 进行坐标转换
使用他们需要引用命名空间
1 | using UnityEngine; |
重要API
清空瓦片地图
1 | tilemap.ClearAllTiles(); |
获取指定坐标格子
注意!这里要用Vector3Int而不是Vector3
1 | TileBase tile = tilemap.GetTile(new Vector3Int(0, 0, 0)); |
设置删除瓦片
1 | tilemap.SetTile(Vector3Int.zero, tileBase); |
设置多个瓦片
可以通过数组设置多个位置的瓦片,两个数组之间一一对应
1 | Vector3Int[] positions = new Vector3Int[2] { new Vector3Int(1, -1, 0), new Vector3Int(1, -2, 0) }; |
批量替换瓦片
得到地图上的某一种瓦片,将其全部替换为另一种瓦片(参数一:将被替换的瓦片,参数二:新的瓦片)
1 | tilemap.SwapTile(tile, tileBase); |
坐标转换
世界坐标转格子坐标
1 | grid.WorldToCell(Vector3.zero) |
屏幕坐标转格子坐标
首先要将屏幕坐标转为世界坐标,再将世界坐标转为格子坐标
1 | void Update() |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!