【问题标题】:Unity TileMap Grid problem with creating a simple fog of warUnity TileMap Grid 创建简单战争迷雾的问题
【发布时间】:2021-05-31 12:56:47
【问题描述】:

我在 Tilemap Grid 上有一个程序生成的地下城 BSP。一个 TileMap 对撞机已添加到其中。 我打算简单地做,因为我的 TileMap 包含一个 SpriteRenderer,我将颜色 0,0,0 添加到它上面,就像黑色的战争迷雾一样,如果我看不清楚或已经打开它,我会重新绘制它们使用 0.5,0.5,0.5,玩家周围的区域将变为 1、1、1。这很酷,但我只能通过 VectorInt 或通过索引和数组副本从地图中获取图块。我可以通过对撞机以某种方式访问​​每个单元格吗?使用诸如 Raycast 或 Overlap Colliders 之类的东西。 任何对撞机或碰撞都会告诉我有关 TileMap 地图的信息。还是我仍然需要创建每个图块并将它们附加到游戏对象或可编写脚本的对象?我很困惑,告诉我,我查看了很多关于这个问题的教程和问题并且很困惑

【问题讨论】:

    标签: c# unity3d procedural-generation fieldofview


    【解决方案1】:

    我不完全明白,但我很确定你想在运行时添加一个图块?或者你至少想改变瓷砖,让它变成黑色或战争迷雾?

    首先,我找到了这个链接:How can i place a tile in a tilemap by script

    但是,这会很困难,因为在不应该出现战争迷雾的情况下,必须对所有图块进行某种数组或二维数组。

    我的建议是使用 Sprite Mask ,并将 tilemap(实际地面)设置为不与面具交互,并拥有一大片战争精灵的迷雾,就像可能跟随玩家的大黑云,这样它不需要是一个巨大的精灵,并将它的精灵交互设置为可见的外部蒙版。

    最后,制作一个跟随玩家的精灵面具,从而消除玩家周围的战争迷雾。

    另一件事是制作一个中间有一个洞的大云精灵,让它跟随玩家四处走动。这样一来,战争迷雾就很大了,但中间有一个洞,所以迷雾不在玩家周围。

    【讨论】:

    • 你的回答给了我一个想法,我做了你建议我做的事情。在初始化第一张地图时,我创建了第二张地图,战争迷雾,然后通过 Octants 简单地重新计算玩家的方格,在我看来这比不断重绘整个地图要好。
    • 更大的象限是什么使视野播放器 + 2-3 平方。和最小的视野,可以去除所有颜色和瓷砖。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 2020-10-04
    相关资源
    最近更新 更多