Unity擦除Tilemap上的图块后cellBounds大小未改变的解决方法
问题
试用原生 Tilemap 取地图大小时发现在地图上绘制图块后,就算擦掉图块,Grid 的 cellBounds 大小也会一直保留被擦掉的图块占用的部分。
原因
来自官方解释
The size of the Tilemap represents the largest bounds which was previously covered by the Tilemap. ** For performance reasons, erasing tiles does not automatically reduce the size of the Tilemap **.
解决
- 对 Tilemap 组件点击设置按钮 -> Compress Tilemap Bounds
或
- 使用代码
1 | tilemap.CompressBounds(); |