动机
由于地图是使用unity tilemap编辑的,服务端也希望获取一份相关的信息。相较于自己写个编辑器,直接利用unity的能力会更加敏捷。
效果展示
只需要将组件拖拽到含有Tilemap组件的GameObj上面,就可以点击按钮,获取格子信息。
源码展示
[CustomEditor(typeof(TilemapTool))]
[CanEditMultipleObjects]
public class TilemapToolEditor : Editor
{
//TODO 水篇博客
public override void OnInspectorGUI()
{
TilemapTool tilemapTool = (TilemapTool)target;
GUILayout.Label("Draw your inspector here");
if (GUILayout.Button("Press Me"))
{
var tilemap = tilemapTool.GetComponent<Tilemap>();
var bound = tilemap.cellBounds;
foreach(var pos in bound.allPositionsWithin)
{
var sprite = tilemap.GetSprite(pos);
if(sprite != null)
Debug.Log($"{pos} {sprite.name}");
}
}
}
}
标签:tilemap,sprite,Tilemap,一键,pos,Unity,TilemapTool,var
From: https://www.cnblogs.com/dewxin/p/17573309.html