public void Horizontal(Vector3Int square, Color color) { int z = square.z; for (int x = 0; x < chessBoard.size.x; x++) { for (int y = 0; y < chessBoard.size.y; y++) { sqScriptClass = chessBoard.squares[x, y, z].GetComponent <HighlightSquareByRayCasting>(); theMat = sqScriptClass.GetComponent <MeshRenderer>().materials; if (color == Color.clear) { theMat[0].SetColor("_Color", sqScriptClass.baseColor); } else { if (square.x == x && square.y == y) { rookColor = (sqScriptClass.baseColor == Color.white) ? RookPointWhite : RookPointBlack; // Point. } else if (square.x == x || square.y == y) { rookColor = (sqScriptClass.baseColor == Color.white) ? RookLineWhite : RookLineBlack; // Line. } else { rookColor = (sqScriptClass.baseColor == Color.white) ? RookQuadWhite : RookQuadBlack; // Quadrant. } theMat[0].SetColor("_Color", rookColor); } } } }
private void EraseAdvSqs() // Called by Update(). { if (doneErasing) { return; } dstSquare = nullSquare; if (frameDelay == 0) { frameDelay = 20; print("Erasing Rook perimeter = " + perimeter); // Unhighlight squares. float xPos = (dstSquare.x > srcSquare.x) ? 0.1f : -0.1f; float yPos = (dstSquare.y > srcSquare.y) ? 0.1f : -0.1f; if (perimeter >= 0) { for (int i = 0; i < advSq.perimeters[perimeter].Length; i++) { Vector3Int sq = advSq.perimeters[perimeter][i]; // Skip squares off the board. if (IsOffBoard(sq, chessBoard.size)) { continue; } // Unhighlight next square. sqScriptClass = chessBoard.squares[sq.x, sq.y, sq.z].GetComponent <HighlightSquareByRayCasting>(); theMat = sqScriptClass.GetComponent <MeshRenderer>().materials; theMat[0].SetColor("_Color", sqScriptClass.baseColor); } if (--perimeter < 0) { print("Last perimeter"); doneErasing = true; } } } else { frameDelay--; } }
public void HighlightSquare(Vector3Int sq, bool line, string point = "") { sqScriptClass = chessBoard.squares[sq.x, sq.y, sq.z].GetComponent <HighlightSquareByRayCasting>(); theMat = sqScriptClass.GetComponent <MeshRenderer>().materials; if (point == "Point") { rookColor = (sqScriptClass.baseColor == Color.white) ? RookPointWhite : RookPointBlack; // Point. } else if (line) { rookColor = (sqScriptClass.baseColor == Color.white) ? RookLineWhite : RookLineBlack; // Line. } else { rookColor = (sqScriptClass.baseColor == Color.white) ? RookQuadWhite : RookQuadBlack; // Quadrant. } theMat[0].SetColor("_Color", rookColor); }