public void SetGame(GameInfo game) { CurrentGame = game; List <PlayerInfo> players = game.Players; mNodes = new Dictionary <PlayerInfo, PlayerNode>(); foreach (PlayerInfo player in players) { PlayerNode bubble = Instantiate(mNodePrefab); bubble.transform.SetParent(MainCanvas.transform); bubble.RectTransform.anchoredPosition = Vector2.zero; bubble.SetPlayer(player); mNodes[player] = bubble; } mArcs = new List <CommanderDamageArc>(); for (int i = 0; i < players.Count - 1; i++) { for (int j = i + 1; j < players.Count; j++) { PlayerNode playerBubble = mNodes[players[i]]; PlayerNode otherPlayerBubble = mNodes[players[j]]; CommanderDamageArc arc = Instantiate(mCommanderDamagePrefab); arc.transform.SetParent(MainCanvas.transform); //Ensure the arcs render behind the nodes but in front of the background arc.transform.SetSiblingIndex(mBackgroundChildrenCount); arc.BeginTarget = playerBubble.VisualRectTransform; arc.EndTarget = otherPlayerBubble.VisualRectTransform; arc.SetPlayers(players[i], players[j]); mArcs.Add(arc); } } Scale(); }