我已经写了平台砖挡住尖峰的移动位置时的所有可能状态。它看起来像这样
for (int i = 0; i < platformTileMap.Length; i++) { if (platformTileMap[i].HasTile(cellPosition + new Vector3Int(0, -1, 0))) // BOTTOM { moveX = moveDir; } else if (platformTileMap[i].HasTile(cellPosition + new Vector3Int(0, 1, 0))) // TOP { moveX = -moveDir; } else if (platformTileMap[i].HasTile(cellPosition + new Vector3Int(-1, -1, 0))) //BOT LEFT { if (moveDir == 1) { moveY = -1; } else moveX = moveDir; } else if (platformTileMap[i].HasTile(cellPosition + new Vector3Int(1, 1, 0))) //TOP RIGHT { if (moveDir == 1) { moveY = 1; } else moveX = -moveDir; } else if (platformTileMap[i].HasTile(cellPosition + new Vector3Int(1, -1, 0))) // BOT RIGHT { if (moveDir == 1) { moveX = moveDir; } else { moveY = -1; } } else if (platformTileMap[i].HasTile(cellPosition + new Vector3Int(-1, 1, 0))) // TOP LEFT { if (moveDir == -1) { moveY = 1; } else { moveX = -moveDir; } }
我觉得必须有一种更有效的方法来解决这个问题。我真的必须在if语句中写所有可能性吗?我可以通过寻路来实现吗?
我想制作一个旋转的尖刺以在由瓷砖制成的平台上移动,如下所示,当平台砖阻塞尖峰的方式时,我已经写了每种可能的状态,说明移动的位置。它...