代码之家  ›  专栏  ›  技术社区  ›  Robin

如何在启用的同时以编程方式使整个Unity tilemap不可见?

  •  0
  • Robin  · 技术社区  · 10 月前

    我希望能够在C#中以编程方式更改Unity tilemap的可见性,同时保持tilemap处于启用状态。

    查看文档 TilemapRenderer ,有一处房产 isVisible ,但它是只读的,因此我无法执行以下操作:

    Transform myTilemap = GameObject.Find("My Tilemap").transform;
    myTilemap.GetComponent<TilemapRenderer>().isVisible = false;
    

    它也没有 Color 属性,与例如a不同 SpriteRenderer ,所以我不能像对待精灵那样将它的alpha值设置为零。

    我不想让tilemap不再启用。

    我该怎么做?

    1 回复  |  直到 10 月前
        1
  •  1
  •   ipodtouch0218    10 月前

    enabled TilemapRenderer 你正在寻找的房产是主要的吗 Tilemap 对象仍将启用:

    Transform myTilemap = GameObject.Find("My Tilemap").transform;
    myTilemap.GetComponent<TilemapRenderer>().enabled = false;
    

    这适用于任何其他 Renderer 或甚至任何其他组件。


    我不想让tilemap[或tilemap渲染器]不再启用。

    选择:

    1. Tilemap has a color property ,不 平铺渲染器 。您也可以将其设置为 new Color(0, 0, 0, 0);
    2. 将波浪贴图的游戏对象层更改为 excluded by the camera's culling mask
    3. 设置父项 Grid 's enabled property 为false: tilemap.GetComponentInParent<Grid>().enabled = false
    4. 设置 TilemapRenderer.maskInteraction SpriteMaskInteraction.VisibleInsideMask (假设你不使用精灵面具)