void LateUpdate() { string scene = SceneManager.GetActiveScene().name; if (this.sceneChanged) { this.sceneChanged = false; if (scene.Equals("Gameplay")) { gameManager = new GameManagerWrapper(GameObject.Find("Game Manager")?.GetComponent <GameManager>()); if (gameManager != null) { soloCounter = gameManager.BasePlayers[0].SoloCounter; scoreManager = gameManager.ScoreManager; } lastCombo = 0; } } if (scene.Equals("Gameplay") && scoreManager != null) { int currentCombo = scoreManager.OverallCombo; if (currentCombo > 0 && currentCombo != lastCombo && (currentCombo == 50 || currentCombo % 100 /*100*/ == 0)) { var textElement = new GameObject(string.Empty, new Type[] { typeof(DancingText) }); textElement.GetComponent <DancingText>().GameManager = gameManager; textElement.GetComponent <DancingText>().Text = $"{currentCombo} Note Streak!"; textElement.GetComponent <DancingText>().Font = uiFont; textElement.GetComponent <DancingText>().RaisedForSolo = true; // Could be soloCounter.Bool2 but I want to gauge how people respond first. } lastCombo = currentCombo; } else if (scene.Equals("Main Menu")) { if (uiFont is null && scene.Equals("Main Menu")) { //TODO: Get the font directly from the bundle? uiFont = GameObject.Find("Profile Title").GetComponent <Text>().font; } if (!VersionCheck.HasVersionBeenChecked) { if (config.SilenceUpdates) { VersionCheck.HasVersionBeenChecked = true; } else { string detectedVersion = GlobalVariablesWrapper.instance.buildVersion; VersionCheck.CheckVersion(detectedVersion); } } } }
void LateUpdate() { if (this.sceneChanged) { splashTextComponent = null; currentSplashMessage = string.Empty; this.sceneChanged = false; } if (splashTextComponent == null && SceneManager.GetActiveScene().name.Equals("Main Menu")) { var splashTextObject = GameObject.Find("Tag"); if (splashTextObject != null) { splashTextComponent = splashTextObject.GetComponent <TextMeshProUGUI>(); if (config.Messages.Count > 0) { currentSplashMessage = config.Messages[randomGenerator.Next(0, config.Messages.Count)]; } } } if (config.Enabled && splashTextComponent != null && currentSplashMessage != string.Empty) { splashTextComponent.text = currentSplashMessage; } if (SceneManager.GetActiveScene().name == "Main Menu" && !VersionCheck.HasVersionBeenChecked) { if (config.SilenceUpdates) { VersionCheck.HasVersionBeenChecked = true; } else { string detectedVersion = GlobalVariablesWrapper.instance.buildVersion; VersionCheck.CheckVersion(detectedVersion); } } config.HandleInput(); }
public void LateUpdate() { string sceneName = SceneManager.GetActiveScene().name; if (this.sceneChanged) { this.sceneChanged = false; if (sceneName == "Gameplay") { // Song length var gameManagerObject = GameObject.Find("Game Manager"); gameManager = new GameManagerWrapper(gameManagerObject.GetComponent <GameManager>()); starProgress = gameManager.StarProgress; basePlayers = gameManager.BasePlayers; notes = basePlayers[0].Notes; totalNoteCount = notes?.Count ?? 0; totalStarPowers = notes?.Count(n => n.IsStarPowerEnd) ?? 0; hitNotes = 0; missedNotes = 0; currentCombo = 0; highestCombo = 0; currentNoteIndex = 0; DestroyAndNullGameplayLabels(); Transform canvasTransform = FadeBehaviourWrapper.instance.fadeGraphic.canvas.transform; TimeNameLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Time Name Label", uiFont); SongTimeLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Song Time Label", uiFont); SongLengthLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Song Length Label", uiFont); SongTimePercentageLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Song Time Percentage Label", uiFont); CurrentStarProgressNameLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Current Star Progress Name Label", uiFont); CurrentStarProgressScoreLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Current Star Progress Score Label", uiFont); CurrentStarProgressEndScoreLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Current Star Progress End Score Label", uiFont); CurrentStarProgressPercentageLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Current Star Progress Percentage Label", uiFont); SevenStarProgressNameLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Seven Star Progress Name Label", uiFont); SevenStarProgressScoreLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Seven Star Progress Score Label", uiFont); SevenStarProgressEndScoreLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Seven Star Progress End Score Label", uiFont); SevenStarProgressPercentageLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Seven Star Progress Percentage Label", uiFont); NotesNameLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Notes Name Label", uiFont); NotesHitCounterLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Notes Hit Counter Label", uiFont); NotesPassedCounterLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Notes Passed Counter Label", uiFont); TotalNotesCounterLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Total Notes Counter Label", uiFont); SeenNotesHitPercentageLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Seen Notes Hit Percentage Label", uiFont); NotesHitPercentageLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Notes Hit Percentage Label", uiFont); NotesMissedCounterLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Notes Missed Counter Label", uiFont); StarPowerNameLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Star Power Name Label", uiFont); StarPowersGottenCounterLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Star Powers Gotten Counter Label", uiFont); TotalStarPowersCounterLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Total Star Powers Counter Label", uiFont); StarPowerPercentageLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Star Power Percentage Label", uiFont); CurrentStarPowerLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Current Star Power Label", uiFont); ComboNameLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Combo Name Label", uiFont); CurrentComboCounterLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Current Combo Counter Label", uiFont); HighestComboCounterLabel = CreateGameplayLabel(canvasTransform, "Extra Song UI Highest Combo Counter Label", uiFont); } else { DestroyAndNullGameplayLabels(); } } if (sceneName == "Main Menu" && !versionCheck.HasVersionBeenChecked) { if (config.SilenceUpdates) { versionCheck.HasVersionBeenChecked = true; } else { string detectedVersion = GlobalVariablesWrapper.instance.buildVersion; versionCheck.CheckVersion(detectedVersion); } } if (sceneName == "Gameplay" && !gameManager.IsNull() && gameManager.PracticeUI.practiceUI == null) { // Song length formattedSongTime = string.Format(config.SongTime.Format, DoubleToTimeString(gameManager.SongTime)); formattedSongLength = string.Format(config.SongLength.Format, DoubleToTimeString(gameManager.SongLength)); songTimePercentage = Math.Max(Math.Min(gameManager.SongTime * 100.0 / gameManager.SongLength, 100.0), 0.0); // Star progress currentStarCount = starProgress.CurrentStar; currentScore = Math.Min(starProgress.LastScore, starProgress.StarScores[6]); //TODO: Migrate to ScoreManager 'cause this stops incremented after you reach 7-star. previousStarScore = starProgress.CurrentStar == 0 ? 0 : starProgress.StarScores[starProgress.CurrentStar - 1]; nextStarScore = starProgress.StarScores[starProgress.CurrentStar]; nextStarPercentage = starProgress.CurrentStar < 7 ? (currentScore - previousStarScore) * 100.0 / (nextStarScore - previousStarScore) : 100.0; sevenStarScore = starProgress.StarScores[6]; sevenStarPercentage = Math.Min(currentScore * 100.0 / sevenStarScore, 100.0); // Note count while (currentNoteIndex < totalNoteCount && (notes[currentNoteIndex].WasHit || notes[currentNoteIndex].WasMissed)) { if (notes[currentNoteIndex].WasHit) { ++hitNotes; } else if (notes[currentNoteIndex].WasMissed) { ++missedNotes; } ++currentNoteIndex; } seenNotes = hitNotes + missedNotes; hitNotesPercentage = totalNoteCount == 0 ? 100.0 : hitNotes * 100.0 / totalNoteCount; seenNotesPercentage = seenNotes == 0 ? 100.0 : hitNotes * 100.0 / seenNotes; fcIndicator = seenNotes == hitNotes ? (!gameManager.BasePlayers[0].FirstNoteMissed ? "FC" : "100%") : $"-{missedNotes}"; starPowersGotten = basePlayers[0].StarPowersHit; starPowerPercentage = totalStarPowers == 0 ? 100.0 : starPowersGotten * 100.0 / totalStarPowers; currentStarPower = basePlayers[0].spBar.someFloat * 100.0; currentCombo = basePlayers[0].Combo; highestCombo = basePlayers[0].HighestCombo; UpdateGameplayLabel(TimeNameLabel, config.TimeName, config.TimeName.Format); UpdateGameplayLabel(SongTimeLabel, config.SongTime, formattedSongTime); UpdateGameplayLabel(SongLengthLabel, config.SongLength, formattedSongLength); UpdateGameplayLabel(SongTimePercentageLabel, config.SongTimePercentage, string.Format(config.SongTimePercentage.Format, songTimePercentage.ToString("0.00"))); UpdateGameplayLabel(CurrentStarProgressNameLabel, config.CurrentStarProgressName, string.Format(config.CurrentStarProgressName.Format, currentStarCount, Math.Min(7, currentStarCount + 1))); UpdateGameplayLabel(CurrentStarProgressScoreLabel, config.CurrentStarProgressScore, string.Format(config.CurrentStarProgressScore.Format, currentScore - previousStarScore)); UpdateGameplayLabel(CurrentStarProgressEndScoreLabel, config.CurrentStarProgressEndScore, string.Format(config.CurrentStarProgressEndScore.Format, nextStarScore - previousStarScore)); UpdateGameplayLabel(CurrentStarProgressPercentageLabel, config.CurrentStarProgressPercentage, string.Format(config.CurrentStarProgressPercentage.Format, nextStarPercentage.ToString("0.00"))); UpdateGameplayLabel(SevenStarProgressNameLabel, config.SevenStarProgressName, string.Format(config.SevenStarProgressName.Format, 0, 7)); UpdateGameplayLabel(SevenStarProgressScoreLabel, config.SevenStarProgressScore, string.Format(config.SevenStarProgressScore.Format, currentScore)); UpdateGameplayLabel(SevenStarProgressEndScoreLabel, config.SevenStarProgressEndScore, string.Format(config.SevenStarProgressEndScore.Format, sevenStarScore)); UpdateGameplayLabel(SevenStarProgressPercentageLabel, config.SevenStarProgressPercentage, string.Format(config.SevenStarProgressPercentage.Format, sevenStarPercentage.ToString("0.00"))); UpdateGameplayLabel(NotesNameLabel, config.NotesName, config.NotesName.Format); UpdateGameplayLabel(NotesHitCounterLabel, config.NotesHitCounter, string.Format(config.NotesHitCounter.Format, hitNotes)); UpdateGameplayLabel(NotesPassedCounterLabel, config.NotesPassedCounter, string.Format(config.NotesPassedCounter.Format, seenNotes)); UpdateGameplayLabel(TotalNotesCounterLabel, config.TotalNotesCounter, string.Format(config.TotalNotesCounter.Format, totalNoteCount)); UpdateGameplayLabel(SeenNotesHitPercentageLabel, config.SeenNotesHitPercentage, string.Format(config.SeenNotesHitPercentage.Format, seenNotesPercentage.ToString("0.00"))); UpdateGameplayLabel(NotesHitPercentageLabel, config.NotesHitPercentage, string.Format(config.NotesHitPercentage.Format, hitNotesPercentage.ToString("0.00"))); UpdateGameplayLabel(NotesMissedCounterLabel, config.NotesMissedCounter, string.Format(config.NotesMissedCounter.Format, fcIndicator)); UpdateGameplayLabel(StarPowerNameLabel, config.StarPowerName, config.StarPowerName.Format); UpdateGameplayLabel(StarPowersGottenCounterLabel, config.StarPowersGottenCounter, string.Format(config.StarPowersGottenCounter.Format, starPowersGotten)); UpdateGameplayLabel(TotalStarPowersCounterLabel, config.TotalStarPowersCounter, string.Format(config.TotalStarPowersCounter.Format, totalStarPowers)); UpdateGameplayLabel(StarPowerPercentageLabel, config.StarPowerPercentage, string.Format(config.StarPowerPercentage.Format, starPowerPercentage.ToString("0.00"))); UpdateGameplayLabel(CurrentStarPowerLabel, config.CurrentStarPower, string.Format(config.CurrentStarPower.Format, currentStarPower.ToString("0.00"))); UpdateGameplayLabel(ComboNameLabel, config.ComboName, config.ComboName.Format); UpdateGameplayLabel(CurrentComboCounterLabel, config.CurrentComboCounter, string.Format(config.CurrentComboCounter.Format, currentCombo)); UpdateGameplayLabel(HighestComboCounterLabel, config.HighestComboCounter, string.Format(config.HighestComboCounter.Format, highestCombo)); } if (uiFont is null && sceneName == "Main Menu") { //TODO: Get the font directly from the bundle? uiFont = GameObject.Find("Profile Title").GetComponent <Text>().font; } config.HandleInput(); }
public void LateUpdate() { string sceneName = SceneManager.GetActiveScene().name; if (this.sceneChanged) { this.sceneChanged = false; if (sceneName == "Gameplay") { int uiLayerMask = LayerMask.NameToLayer("UI"); var gameManagerObject = GameObject.Find("Game Manager"); gameManager = new GameManagerWrapper(gameManagerObject.GetComponent <GameManager>()); basePlayers = gameManager.BasePlayers; ResetGameplaySceneValues(); DestroyAndNullGameplayLabels(); Transform canvasTransform = FadeBehaviourWrapper.instance.fadeGraphic.canvas.transform; accuracyIndicatorLabel = new GameObject($"Accuracy Indicator", new Type[] { typeof(Text), typeof(DestroyOnSceneChange) }); accuracyIndicatorLabel.layer = uiLayerMask; accuracyIndicatorLabel.transform.SetParent(canvasTransform); accuracyIndicatorLabel.transform.SetSiblingIndex(0); accuracyIndicatorLabel.transform.localEulerAngles = new Vector3(); accuracyIndicatorLabel.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f); accuracyIndicatorLabel.GetComponent <Text>().horizontalOverflow = HorizontalWrapMode.Overflow; accuracyIndicatorLabel.GetComponent <Text>().verticalOverflow = VerticalWrapMode.Overflow; accuracyIndicatorLabel.GetComponent <Text>().font = uiFont; accuracyMessageLabel = new GameObject($"Accuracy Message", new Type[] { typeof(Text), typeof(DestroyOnSceneChange) }); accuracyMessageLabel.layer = uiLayerMask; accuracyMessageLabel.transform.SetParent(canvasTransform); accuracyMessageLabel.transform.SetSiblingIndex(0); accuracyMessageLabel.transform.localEulerAngles = new Vector3(); accuracyMessageLabel.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f); accuracyMessageLabel.GetComponent <Text>().horizontalOverflow = HorizontalWrapMode.Overflow; accuracyMessageLabel.GetComponent <Text>().verticalOverflow = VerticalWrapMode.Overflow; accuracyMessageLabel.GetComponent <Text>().font = uiFont; averageAccuracyLabel = new GameObject($"Average Accuracy", new Type[] { typeof(Text), typeof(DestroyOnSceneChange) }); averageAccuracyLabel.layer = uiLayerMask; averageAccuracyLabel.transform.SetParent(canvasTransform); averageAccuracyLabel.transform.SetSiblingIndex(0); averageAccuracyLabel.transform.localEulerAngles = new Vector3(); averageAccuracyLabel.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f); averageAccuracyLabel.GetComponent <Text>().horizontalOverflow = HorizontalWrapMode.Overflow; averageAccuracyLabel.GetComponent <Text>().verticalOverflow = VerticalWrapMode.Overflow; averageAccuracyLabel.GetComponent <Text>().font = uiFont; } else { DestroyAndNullGameplayLabels(); } if (config.Enabled && sceneName == "EndOfSong") { InstantiateEndOfSongLabels(); } } if (sceneName == "Gameplay") { //! In practice mode, the song time is set to 1.5s before the section or A/B. If it is looping, it is //! initially set to 0, then to the appropriate time. As long as the user isn't on less than 10FPS, this should work. if (Math.Abs(gameManager.SongTime - lastSongTime) > 1.5 && gameManager.PracticeUI.practiceUI != null) { ResetGameplaySceneValues(); } UpdateGreatestThresholds(); if (notes != null) { UpdateNotes(); } UpdateLabels(); } else if (sceneName == "Main Menu") { if (uiFont is null) { //TODO: Get the font directly from the bundle? uiFont = GameObject.Find("Profile Title").GetComponent <Text>().font; } if (!versionCheck.HasVersionBeenChecked) { if (config.SilenceUpdates) { versionCheck.HasVersionBeenChecked = true; } else { string detectedVersion = GlobalVariablesWrapper.instance.buildVersion; versionCheck.CheckVersion(detectedVersion); } } } config.HandleInput(); if (!gameManager.IsNull()) { lastSongTime = gameManager.SongTime; } }
public void LateUpdate() { string sceneName = SceneManager.GetActiveScene().name; if (this.sceneChanged) { this.sceneChanged = false; if (sceneName == "Gameplay") { int uiLayerMask = LayerMask.NameToLayer("UI"); var gameManagerObject = GameObject.Find("Game Manager"); gameManager = new GameManagerWrapper(gameManagerObject.GetComponent <GameManager>()); ResetGameplaySceneValues(); DestroyAndNullGameplayLabels(); Transform canvasTransform = FadeBehaviourWrapper.instance.fadeGraphic.canvas.transform; displayImageLabel = new GameObject($"Perfect Mode Indicator", new Type[] { typeof(Text) }); displayImageLabel.layer = uiLayerMask; displayImageLabel.transform.SetParent(canvasTransform); displayImageLabel.transform.SetSiblingIndex(0); displayImageLabel.transform.localEulerAngles = new Vector3(); displayImageLabel.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f); displayImageLabel.GetComponent <Text>().horizontalOverflow = HorizontalWrapMode.Overflow; displayImageLabel.GetComponent <Text>().verticalOverflow = VerticalWrapMode.Overflow; displayImageLabel.GetComponent <Text>().font = uiFont; remainingNotesLeftLabel = new GameObject($"Perfect Mode Notes Remaining", new Type[] { typeof(Text) }); remainingNotesLeftLabel.layer = uiLayerMask; remainingNotesLeftLabel.transform.SetParent(canvasTransform); remainingNotesLeftLabel.transform.SetSiblingIndex(0); remainingNotesLeftLabel.transform.localEulerAngles = new Vector3(); remainingNotesLeftLabel.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f); remainingNotesLeftLabel.GetComponent <Text>().horizontalOverflow = HorizontalWrapMode.Overflow; remainingNotesLeftLabel.GetComponent <Text>().verticalOverflow = VerticalWrapMode.Overflow; remainingNotesLeftLabel.GetComponent <Text>().font = uiFont; restartIndicatorLabel = new GameObject($"Perfect Mode Restart Message", new Type[] { typeof(Text) }); restartIndicatorLabel.layer = uiLayerMask; restartIndicatorLabel.transform.SetParent(canvasTransform); restartIndicatorLabel.transform.SetSiblingIndex(0); restartIndicatorLabel.transform.localEulerAngles = new Vector3(); restartIndicatorLabel.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f); restartIndicatorLabel.GetComponent <Text>().horizontalOverflow = HorizontalWrapMode.Overflow; restartIndicatorLabel.GetComponent <Text>().verticalOverflow = VerticalWrapMode.Overflow; restartIndicatorLabel.GetComponent <Text>().font = uiFont; } else { DestroyAndNullGameplayLabels(); } } if (sceneName == "Main Menu" && !versionCheck.HasVersionBeenChecked) { if (config.SilenceUpdates) { versionCheck.HasVersionBeenChecked = true; } else { string detectedVersion = GlobalVariablesWrapper.instance.buildVersion; versionCheck.CheckVersion(detectedVersion); } } if (config.Enabled && sceneName == "Gameplay" && !gameManager.IsNull()) { target = config.FC ? "FC" : (config.NotesMissed == 0 ? "100%" : $"-{config.NotesMissed}"); isStillFC = !gameManager.BasePlayers[0].FirstNoteMissed; while (currentNoteIndex < totalNoteCount && (notes[currentNoteIndex].WasHit || notes[currentNoteIndex].WasMissed)) { if (!notes[currentNoteIndex].WasHit && notes[currentNoteIndex].WasMissed) { ++missedNotes; } ++currentNoteIndex; } if (!failedObjective && (config.FC && !isStillFC || config.NotesMissed < missedNotes)) { failedObjective = true; remainingTimeBeforeRestart = Math.Min(config.FailDelay, (float)(gameManager.SongLength - gameManager.SongTime)); } if (failedObjective && (gameManager.PauseMenu is null || !gameManager.PauseMenu.activeInHierarchy)) { remainingTimeBeforeRestart -= Time.deltaTime; if (remainingTimeBeforeRestart < 0.0f && !invokedSceneChange) { //TODO: Double-check that multiplayer works fine with this. StartCoroutine(FadeBehaviourWrapper.instance.InvokeSceneChange("Gameplay")); invokedSceneChange = true; } } if (config.DisplayImage.Visible || config.LayoutTest) { displayImageLabel.transform.localPosition = new Vector3(config.DisplayImage.X - Screen.width / 2, Screen.height / 2 - config.DisplayImage.Y); var text = displayImageLabel.GetComponent <Text>(); text.enabled = true; text.fontSize = config.DisplayImage.Size; text.alignment = config.DisplayImage.Alignment; text.fontStyle = (config.DisplayImage.Bold ? FontStyle.Bold : FontStyle.Normal) | (config.DisplayImage.Italic ? FontStyle.Italic : FontStyle.Normal); text.text = $"{target} mode active"; text.color = config.DisplayImage.Color.Color; } else { displayImageLabel.GetComponent <Text>().enabled = false; } if ((config.RemainingNotesLeft.Visible && !config.FC) || config.LayoutTest) { remainingNotesLeftLabel.transform.localPosition = new Vector3(config.RemainingNotesLeft.X - Screen.width / 2, Screen.height / 2 - config.RemainingNotesLeft.Y); var text = remainingNotesLeftLabel.GetComponent <Text>(); text.enabled = true; text.fontSize = config.RemainingNotesLeft.Size; text.alignment = config.RemainingNotesLeft.Alignment; text.fontStyle = (config.RemainingNotesLeft.Bold ? FontStyle.Bold : FontStyle.Normal) | (config.RemainingNotesLeft.Italic ? FontStyle.Italic : FontStyle.Normal); text.text = config.NotesMissed - missedNotes >= 0 ? $"{config.NotesMissed - missedNotes} note{(config.NotesMissed - missedNotes == 1 ? string.Empty : "s")} can be missed" : $"Too many notes missed"; text.color = config.RemainingNotesLeft.Color.Color; } else { remainingNotesLeftLabel.GetComponent <Text>().enabled = false; } if ((config.RestartIndicator.Visible && failedObjective) || config.LayoutTest) { restartIndicatorLabel.transform.localPosition = new Vector3(config.RestartIndicator.X - Screen.width / 2, Screen.height / 2 - config.RestartIndicator.Y); var text = restartIndicatorLabel.GetComponent <Text>(); text.enabled = true; text.fontSize = config.RestartIndicator.Size; text.alignment = config.RestartIndicator.Alignment; text.fontStyle = (config.RestartIndicator.Bold ? FontStyle.Bold : FontStyle.Normal) | (config.RestartIndicator.Italic ? FontStyle.Italic : FontStyle.Normal); text.text = $"{target} failed, restarting in {(int)remainingTimeBeforeRestart + 1}"; text.color = new Color(config.RestartIndicator.Color.Color.r, config.RestartIndicator.Color.Color.g, config.RestartIndicator.Color.Color.b, config.RestartIndicator.Color.Color.a * Math.Min((config.FailDelay - remainingTimeBeforeRestart) * 2.0f, 1.0f)); } else { restartIndicatorLabel.GetComponent <Text>().enabled = false; } } else if (sceneName == "Gameplay") { displayImageLabel.GetComponent <Text>().enabled = false; remainingNotesLeftLabel.GetComponent <Text>().enabled = false; restartIndicatorLabel.GetComponent <Text>().enabled = false; } if (uiFont is null && sceneName == "Main Menu") { //TODO: Get the font directly from the bundle? uiFont = GameObject.Find("Profile Title").GetComponent <Text>().font; } config.HandleInput(); }