// Instantiate Leaderboard entry Gameobject/prefab and apply the correct data to it. // WARNING, PREFAB COMPONENTS MUST BE IN THE RIGHT ORDER!!! public void UpdateLeaderboard(List <DataStructs.LeaderboardEntry> leaderboardList) { DestroyChildren(scrollRectParent); leaderboardList.Reverse(); int numberToShow = leaderboardList.Count; if (leaderboardList.Count > maxNumberToShow) { numberToShow = maxNumberToShow; } for (int i = 0; i < numberToShow; i++) { DataStructs.LeaderboardEntry entry = leaderboardList[i]; GameObject newEntryGameObject = MonoBehaviour.Instantiate(leaderboardEntryPrefab, scrollRectParent.transform); // Apply the text Text[] textArray = newEntryGameObject.GetComponentsInChildren <Text>(); FormatPrefabText(textArray, entry); // Apply Top 3 Entries Special Formats if (i < 3) { // Remove Text Rank Gameobject but store positional data for our new Gameobject that is about to be created Vector3 postionalData = textArray[0].gameObject.transform.localPosition; MonoBehaviour.Destroy(textArray[0].gameObject); // Create new game object and set image to be from the resources folder according to "i" value GameObject placingGameObject = new GameObject("Image Rank"); Image image = placingGameObject.AddComponent <Image>() as Image; Sprite leaderboardPlacingImage = Resources.Load <Sprite>("Leaderboard/placing" + (i + 1).ToString()); // Get leaderboard image image.sprite = leaderboardPlacingImage; image.preserveAspect = true; // Position the new gameobject correctly and use the "RectTransform" Cast to modify the size of the image placingGameObject.transform.SetParent(newEntryGameObject.transform.transform); placingGameObject.transform.localScale = new Vector3(1, 1, 1); placingGameObject.transform.localPosition = postionalData; RectTransform positionRect = (RectTransform)placingGameObject.transform; positionRect.sizeDelta = new Vector2(127, 63.5f); // Set colours of the scores =) switch (i) { case 0: textArray[3].color = new Color32(255, 192, 35, 255); break; case 1: textArray[3].color = new Color32(240, 240, 240, 255); break; case 2: textArray[3].color = new Color32(216, 75, 54, 255); break; default: textArray[3].color = new Color32(137, 137, 137, 255); break; } } // Apply Region Images Image[] imageArray = newEntryGameObject.GetComponentsInChildren <Image>(); imageArray[1].sprite = Resources.Load <Sprite>("Avatars/" + entry.profilePicture.ToString()); imageArray[3].sprite = Resources.Load <Sprite>("Countryflags/" + entry.region); newEntryGameObject.transform.SetSiblingIndex(i); } AddMyLeaderBoardEntry(FirebaseDB_Leaderboards.GenerateRandomEntry(560412)); AddShowMoreEntry(); }
void InitializeFirebase() { FirebaseApp.DefaultInstance.SetEditorDatabaseUrl(DatabaseURL); // Apply database URL LeaderboardDB = new FirebaseDB_Leaderboards(); // This is the leaderboard class that gets and sets leaderboard data }