我当时正在做一个国际象棋游戏,其他一切都很好,除了一个棋子(在前面的棋子上显示了一个移动标记)(棋子不能那样移动)。游戏不会让您移动到那里,因为移动标记代码与实际的移动代码和校验是分开的。
我已经尝试了许多不同的方法,例如遍历每个片段并检查每个片段是否在所选片段的前面,并确保迭代通过的每个片段都不是所选片段。
if (pieceSelected && !finishedPlacingMoveMarkers)
{
if (selectedPiece.GetComponent<BlackPawn>())
{
if (selectedPiece.transform.position.y + 1 <= 3.5)
{
foreach (Transform child in pieces.transform)
{
if (child.tag == "Piece")
{
if (obj.position == new Vector3(selectedPiece.transform.position.x, selectedPiece.transform.position.y + 1) && child.position != selectedPiece.transform.position)
{
if (child.position == new Vector3(selectedPiece.transform.position.x, selectedPiece.transform.position.y + 1))
{
noMoveHighlight = true;
break;
}
else
{
noMoveHighlight = false;
}
}
}
}
if (!noMoveHighlight)
{
GameObject move1 = Instantiate(tileMoveHighlight);
move1.transform.parent = moveTileHighlights.transform;
move1.transform.position = new Vector3(selectedPiece.transform.position.x, selectedPiece.transform.position.y + 1, -0.9f);
}
}
finishedPlacingMoveMarkers = true;
}
}
请帮助!