public override void Tick() { if (m_Finished) { //if we are finished, we check if advertisement is ready, allow to disable the button until it is ready #if UNITY_ADS if (!m_AdsInitialised && Advertisement.IsReady(adsPlacementId)) { adsForLifeButton.SetActive(true); m_AdsInitialised = true; #if UNITY_ANALYTICS AnalyticsEvent.AdOffer(adsRewarded, adsNetwork, adsPlacementId, new Dictionary <string, object> { { "level_index", PlayerData.instance.rank }, { "distance", TrackManager.instance == null ? 0 : TrackManager.instance.worldDistance }, }); #endif } else if (!m_AdsInitialised) { adsForLifeButton.SetActive(false); } #else adsForLifeButton.SetActive(false); //Ads is disabled #endif return; } CharacterInputController chrCtrl = trackManager.characterController; m_TimeSinceStart += Time.deltaTime; if (chrCtrl.currentLife <= 0) { pauseButton.gameObject.SetActive(false); chrCtrl.CleanConsumable(); chrCtrl.character.animator.SetBool(s_DeadHash, true); chrCtrl.characterCollider.koParticle.gameObject.SetActive(true); StartCoroutine(WaitForGameOver()); } // Consumable ticking & lifetime management List <Consumable> toRemove = new List <Consumable>(); List <PowerupIcon> toRemoveIcon = new List <PowerupIcon>(); for (int i = 0; i < chrCtrl.consumables.Count; ++i) { PowerupIcon icon = null; for (int j = 0; j < m_PowerupIcons.Count; ++j) { if (m_PowerupIcons[j].linkedConsumable == chrCtrl.consumables[i]) { icon = m_PowerupIcons[j]; break; } } chrCtrl.consumables[i].Tick(chrCtrl); if (!chrCtrl.consumables[i].active) { toRemove.Add(chrCtrl.consumables[i]); toRemoveIcon.Add(icon); } else if (icon == null) { // If there's no icon for the active consumable, create it! GameObject o = Instantiate(PowerupIconPrefab); icon = o.GetComponent <PowerupIcon>(); icon.linkedConsumable = chrCtrl.consumables[i]; icon.transform.SetParent(powerupZone, false); m_PowerupIcons.Add(icon); } } for (int i = 0; i < toRemove.Count; ++i) { toRemove[i].Ended(trackManager.characterController); Destroy(toRemove[i].gameObject); if (toRemoveIcon[i] != null) { Destroy(toRemoveIcon[i].gameObject); } chrCtrl.consumables.Remove(toRemove[i]); m_PowerupIcons.Remove(toRemoveIcon[i]); } UpdateUI(); currentModifier.OnRunTick(this); }
public override void Tick() { if (m_Finished) { return; } CharacterInputController chrCtrl = trackManager.characterController; m_TimeSinceStart += Time.deltaTime; if (chrCtrl.currentLife <= 0) { pauseButton.gameObject.SetActive(false); chrCtrl.CleanConsumable(); chrCtrl.character.animator.SetBool(s_DeadHash, true); chrCtrl.characterCollider.koParticle.gameObject.SetActive(true); StartCoroutine(WaitForGameOver()); } // Consumable ticking & lifetime management List <Consumable> toRemove = new List <Consumable>(); List <PowerupIcon> toRemoveIcon = new List <PowerupIcon>(); for (int i = 0; i < chrCtrl.consumables.Count; ++i) { PowerupIcon icon = null; for (int j = 0; j < m_PowerupIcons.Count; ++j) { if (m_PowerupIcons[j].linkedConsumable == chrCtrl.consumables[i]) { icon = m_PowerupIcons[j]; break; } } chrCtrl.consumables[i].Tick(chrCtrl); if (!chrCtrl.consumables[i].active) { toRemove.Add(chrCtrl.consumables[i]); toRemoveIcon.Add(icon); } else if (icon == null) { // If there's no icon for the active consumable, create it! GameObject o = Instantiate(PowerupIconPrefab); icon = o.GetComponent <PowerupIcon>(); icon.linkedConsumable = chrCtrl.consumables[i]; icon.transform.SetParent(powerupZone, false); m_PowerupIcons.Add(icon); } } for (int i = 0; i < toRemove.Count; ++i) { toRemove[i].Ended(trackManager.characterController); Destroy(toRemove[i].gameObject); if (toRemoveIcon[i] != null) { Destroy(toRemoveIcon[i].gameObject); } chrCtrl.consumables.Remove(toRemove[i]); m_PowerupIcons.Remove(toRemoveIcon[i]); } UpdateUI(); currentModifier.OnRunTick(this); }