如果认为该问题过于主观,可以随时结束。我意识到这很有可能,因为它可能会专注于最佳做法,如果不是行业标准,那可能是主观的。
问题和想法:
我正在使用统一(2D)的tilemap系统,并且效果很好,但是我对自己的特殊用法有些担心。我想要的是多个“战斗地图”,这些战斗地图会在切换到战斗场景时实例化。我目前的想法是将每种战役图制作成一个预制图(在预制图上是预制图,因为图块只是图层),然后在场景加载时实例化网格。
这是最佳实践还是有更好的方法?拥有10张地图与200张地图会有区别吗?
我考虑过的其他事项:
最好制作一个巨大的图块,将所有战场地图都拉开一定距离,并仅限制摄像机在“当前”战场地图内移动?我可以看到的地图的绝对最大尺寸是30x20,但可能接近一半。
一个较早的想法是使用小像素地图图像来渲染地图。这是在我发现Unity的tilemap系统之前,我承认,我宁愿使用它,因为它可视化非常简单,而且花费更少努力发展。
场景:
为简单起见,让我们假设游戏有2个场景,主菜单和战斗场景。基本上,这个想法是进入战场并从可用的地图中生成随机的战图。角色被放置,所有其他物品也被放置,例如物品或您拥有的物品。
我在最佳实践之上提出了什么?我是否应该考虑我也描述过的其他两个系统?还是我没有想到的事情会更好?
我不认为上述任何一种方法都行不通,我很好奇它们中的任何一种是否是执行此操作的最佳方法。
答案 0 :(得分:1)
您的考虑是将所有战斗地图绘制在单个图块地图上,并将摄像机限制在当前地图的区域内,这是即时的危险信号。 根据我的团结经验,如果我想在网格上绘制一个较大的关卡,出于性能原因,我将不得不将其分解成块(每个块是一个单独的tilemap),因此我会<强烈建议不要这样做。
如果您的目标是快速加载,那么只要各自的tilemap很小(少于10000个tile),那么按照您的建议实例化预制件就不是一个糟糕的主意,否则您几乎肯定会注意到地图已加载如果您试图毫不费力地加载大型图块地图,则可能会在实际切换发生之前异步加载图块地图。
我将仅在场景中加载当前地图和下一张地图,以确保无缝过渡和最佳资源使用。 Unity的图块图不亮。