public void InitMesher()
        {
            if (theme == null)
            {
                Debug.LogError("theme is null! drawer not initialized!");
                return;
            }

            if (theme.Is3DTheme)
            {
                if (drawer == null || drawer.Get <TileMesher3D>() == null)
                {
                    drawer?.Dispose();
                    drawer = MeshBuilderDrawer.Create <TileMesher3D>(renderInfo);
                }

                drawer.Get <TileMesher3D>().Init(tileData, themeIndex, theme, cellSize, Settings3D);
            }
            else
            {
                if (drawer == null || drawer.Get <TileMesher2D>() == null)
                {
                    drawer?.Dispose();
                    drawer = MeshBuilderDrawer.Create <TileMesher2D>(renderInfo);
                }

                drawer.Get <TileMesher2D>().Init(tileData, yLayer, themeIndex, theme);
            }
        }
 private void Awake()
 {
     drawer = theme.Is2DTheme ?
              MeshBuilderDrawer.Create <TileMesher2D>(renderInfo) :
              MeshBuilderDrawer.Create <TileMesher3D>(renderInfo);
     AddDrawer(drawer);
 }