void UpdatePositionOfRepresentationObjects() { foreach (var cpr in representationObjects) { cpr.gameObject.transform.position = RepresentationMapping.MapBoardPos2D(cpr.chessPiece.pos); } }
GameObject CreateChessPieceRepresentationObject(ChessPiece piece) { GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Cube); obj.name = piece.agent.name + " " + piece.Type.ToString(); obj.transform.position = RepresentationMapping.MapBoardPos2D(piece.pos); obj.transform.localScale = Vector3.one * 0.7f; obj.GetComponent <MeshRenderer>().material.color = piece.agent.color; GameObject head = GameObject.CreatePrimitive(PrimitiveType.Sphere); head.transform.position = RepresentationMapping.MapBoardPos2D(piece.pos) + Vector3.up * 0.3f; head.transform.localScale = Vector3.one * 0.5f; head.GetComponent <MeshRenderer>().material.color = ColorFromPieceType(piece.Type); head.transform.SetParent(obj.transform); Destroy(head.GetComponent <SphereCollider>()); ChessPieceRepresentation cpr = obj.AddComponent <ChessPieceRepresentation>(); cpr.chessPiece = piece; representationObjects.Add(cpr); return(obj); }
void InstatiateGameBoardObject() { GameObject parent = new GameObject("Schachbrett"); ChessField[,] fields = ChessGameManager.Instance.chessBoard.chessFields; for (int x = 0; x < fields.GetLength(0); x++) { for (int y = 0; y < fields.GetLength(1); y++) { GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Cube); obj.transform.position = RepresentationMapping.MapBoardPos2D(new Pos2D(x, y)) + Vector3.down; obj.GetComponent <MeshRenderer>().material.color = (x + y) % 2 == 0 ? Color.black : Color.white; obj.transform.SetParent(parent.transform); } } }