下载链接:https://github.com/Unity-Technologies/2d-extras
直接装入Assets
让瓦片以一定的规则进行上色
设置默认瓦片以及瓦片规则:
| 符号 | 描述 |
|---|---|
| X | 这个位置没有物体 |
| <- -> | 这个方向有物体 |
| output选项: | |
| 符号 | 描述 |
| – | – |
| 单一 | 单一精灵瓦片 |
| 动画 | 随机选中一个精灵作为瓦片 |
| 动画 | 设置动画瓦片 |
| 笔刷 | 描述 | 特殊 |
|---|---|---|
| Coordinate Brush | 可以显示坐标的笔刷 | - |
| Line | 直线笔刷 | FillGaps: 填充空隙 |
| Tint Bush | 给2d-extras瓦片上色 | - |
| Tint Bush(smooth) | 给瓦片上一个发光点 | 需要给地形添加 TintedTilemap 材质 |
// 清空全部瓦片
// tm.ClearAllTiles();
// 根据坐标获取瓦片
TileBase tile1 = tm.GetTile(new Vector3Int(-1, -4, 0));
// 根据坐标设置瓦片
// tm.SetTile(new Vector3Int(-1, -3, 0), tile1);
// 根据坐标列表设置瓦片列表
// tm.SetTiles(new Vector3Int []{ new Vector3Int(-1, -3, 0) }, new TileBase []{ tile1 });
// 根据坐标删除瓦片
// tm.SetTile(new Vector3Int(-1, -4, 0), null);
// 将地图内一种瓦片替换成另一种瓦片
// tm.SwapTile(tile1, tb);
// 克隆一块地形到另一个地方
// TileBase[] tileArray = tm.GetTilesBlock(new BoundsInt(new Vector3Int(-1, -4, 0), new Vector3Int(2, 3, 1)));
// tm.SetTilesBlock(new BoundsInt(new Vector3Int(1, 4, 0), new Vector3Int(2, 3, 1)), tileArray);
void Update()
{
if (Input.GetMouseButton(0))
{
// 转换成游戏内的世界坐标
Vector3 worldPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
// 转换成格子的坐标
Vector3Int cellPos = grid.WorldToCell(worldPos);
// Debug.Log(worldPos);
// Debug.Log(cellPos);
ExplosionLogic(cellPos);
}
}
void ExplosionLogic(Vector3Int cellPos)
{
tm.SetTile(cellPos, null);
}