问题描述
我是游戏开发领域的完全菜鸟,但我已经观看了许多关于生成 2D 阵列以设置基于网格的战斗(路径、障碍物等)的视频,但我没有发现可编程的方法直观或视觉友好。
是否可以使用多个瓦片地图设置具有障碍物的关卡?
- 第一个 tilemap 将包括整个级别区域(我将其命名为“General Tilemap”):
- 2nd tilemap 只包含在读取时标记为碰撞的图块(我将其命名为“Collision Tilemap”)并且玩家将无法移动到它们:
我的逻辑是读取玩家周围的相邻图块,如果:
您能否让我知道这是否是一种有效的方法(至少对于较小的级别,我不会做任何大的事情,因此可扩展性不是问题),或者我是否完全偏离了路线并且有更好的方法正确地做到这一点? 我目前停留在第一步 - 读取坐标(玩家旁边)上的瓷砖是否存在或两个瓷砖地图为空。尽我最大的努力去弄清楚。
谢谢!
解决方法
通过查找相关的 Tilemap 并使用 hasTile 读取它是否具有值,设法检查 tilemap 是否包含在 Start 函数中的 xy 坐标上的 tile。这将返回一个布尔值。
Tilemap generalTilemap = GameObject.Find("General Tilemap").GetComponent<Tilemap>();
hasGTile = generalTilemap.HasTile(playerTileCoord);
仍然不确定这种方法是否对我长期有效,尤其是当我使用寻路算法时,但我们会看到的!