DRHPS/code-csharp/zh_TW/IntroDisclaimer.cs
2025-04-08 11:31:35 +08:00

79 lines
2.4 KiB
C#

using System.Collections;
using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;
public class IntroDisclaimer : MonoBehaviour
{
[SerializeField]
private TextMeshPro DisclaimerText;
[SerializeField]
private AudioClip DenySFX;
[SerializeField]
private AudioClip ConfirmSFX;
[SerializeField]
private AudioClip FinishConfirmSFX;
private string originalDisclaimerText;
private int remainingConfirmPresses = 3;
private bool canBeginConfirming;
private void Start()
{
originalDisclaimerText = DisclaimerText.text;
DisclaimerText.text = originalDisclaimerText;
if (PlayerPrefs.GetInt("Setting_DyslexicText", 0) == 1)
{
DisclaimerText.font = SettingsManager.Instance.DyslexicFont;
DisclaimerText.extraPadding = false;
}
StartCoroutine(Disclaimer());
}
private void Update()
{
if (canBeginConfirming)
{
if (Input.GetKeyDown(PlayerInput.Instance.Key_Confirm) && remainingConfirmPresses > 0)
{
CutsceneUtils.PlaySound(ConfirmSFX);
remainingConfirmPresses--;
DisclaimerText.text = originalDisclaimerText + string.Format("\n請再按 <color=yellow>{1}</color> 次 <color=yellow>{0}</color> 鍵確認繼續。", PlayerInput.Instance.Key_Confirm, remainingConfirmPresses);
}
else
{
DisclaimerText.text = originalDisclaimerText + string.Format("\n請再按 <color=yellow>{1}</color> 次 <color=yellow>{0}</color> 鍵確認繼續。", PlayerInput.Instance.Key_Confirm, remainingConfirmPresses);
}
}
}
private IEnumerator Disclaimer()
{
yield return new WaitForSeconds(1f);
CutsceneUtils.PlaySound(DenySFX);
CutsceneUtils.FadeInText3D(DisclaimerText, 0.5f);
yield return new WaitForSeconds(1.5f);
canBeginConfirming = true;
while (remainingConfirmPresses > 0)
{
yield return null;
}
CutsceneUtils.PlaySound(FinishConfirmSFX);
CutsceneUtils.FadeOutText3D(DisclaimerText);
yield return new WaitForSeconds(1f);
if (PlayerPrefs.GetInt("DisclaimerViewed") == 0)
{
SceneManager.LoadScene(22);
}
else
{
SceneManager.LoadScene(2);
}
}
}