private static void PopAchievement(DynamicAchievementManager.Achievement achievement) { var assetReference = DynamicAchievementManager.ReturnSpriteAssetReference(achievement); _activeAchievements++; AssetReferenceLoader.LoadAssetReferenceAsynchronously <Sprite>(assetReference, (returnVariable) => { var popUp = PopUps.Dequeue(); popUp.transform.SetSiblingIndex(_maximumNumberOfActiveAchievements - 1); popUp.Show(returnVariable, StringUtilities.AddSpacesBeforeCapitals(achievement.ToString()), DynamicAchievementManager.ReturnDescription(achievement), DynamicAchievementManager.ReturnReward(achievement), () => { _activeAchievements--; PopUps.Enqueue(popUp); popUp.gameObject.SetActive(false); }); AssetReferenceLoader.UnloadAssetReference(assetReference); Instance.StartCoroutine(Instance.HandleDelayedAdditions()); }); }
private IEnumerator CreateListAsynchronously(DynamicAchievementManager.Achievement[] achievements) { var amountOfAchievements = achievements.Length; AssetReferenceLoader.LoadAssetReferenceAsynchronously <GameObject>(DisplayItemPrefab, (returnVariable) => { DisplayItemAddressableAsGameObject = returnVariable; AssetReferenceLoader.DestroyOrUnload(returnVariable); }); yield return(WaitUntilAssetReferenceIsLoadedAsynchronously); for (var i = 0; i < amountOfAchievements; i++) { var achievement = achievements[i]; CreateListItemAsynchronously(achievement, DynamicAchievementManager.ReturnDescription(achievement), DynamicAchievementManager.ReturnReward(achievement), DynamicAchievementManager.ReturnSpriteAssetReference(achievement), DynamicAchievementManager.ReturnUnlockedState(achievement)); } DisplayItemAddressableAsGameObject = null; ListCreated = true; }