public PlayerSkinConfig GetNextUnlockable() { int nearestDifference = 100000; PlayerSkinConfig nextUnlockableSkin = null; for (int i = 0; i < playerSkinConfigs.Length; i++) { PlayerSkinConfig playerSkinConfig = playerSkinConfigs[i]; if (playerSkinConfig.IsUnlocked) { continue; } // If there's a locked skin which we can purchase, return this one if (playerSkinConfig.Price < coinsTracker.TotalCoinsCollected) { return(playerSkinConfig); } int difference = playerSkinConfig.Price - coinsTracker.TotalCoinsCollected; if (difference < nearestDifference) { nextUnlockableSkin = playerSkinConfig; nearestDifference = difference; } } return(nextUnlockableSkin); }
public void Show(PlayerSkinConfig playerSkinConfig, bool isSelected, bool disableButtons = false) { this.playerSkinConfig = playerSkinConfig; skinImage.sprite = playerSkinConfig.Sprite; lockImage.gameObject.SetActive(!playerSkinConfig.IsUnlocked && !disableButtons); selectedImage.gameObject.SetActive(isSelected); if (disableButtons) { selectButton.enabled = false; unlockButton.enabled = false; return; } selectButton.enabled = true; unlockButton.enabled = true; selectButton.onClick.AddListener(OnSelectButtonPressed); unlockButton.onClick.AddListener(OnUnlockButtonPressed); }