UnityC#でカウントダウンを実装したら2回目以降カウントダウンが早くなった
なんで早くなったのか原因は結局分からないけど、CahtGPTに壁打ちしたら解決した話
なんか恥ずかしいのでこっちに書く。AIに壁打ちしたり解決してもらうのは日常になるんだろうな〜
最初はBingChat
BingChatはコード返さないみたいなのを見た気がするけど、書いてくれた
でもこれじゃ解決しなかったし、コードはChatGPTのほうが強いイメージがあるので久々にChatGPTに聞いてみた
コード適当に貼ったらちゃんと答えくれた!
ウキウキして試したけど変わらなかった;;
説明したらなぜかjavascritの話をしだした
UnityC#でお願いしますって言ったら、最初に私が提示したコードとはあんまり関係なくカウントダウン機能単体の実装を教えてくれた
でもこれを見て、カウントダウンする部分だけUpdateで呼び出せばいいんだ!ということに気づいて解決した。
純粋なカウントダウン以外の部分もUpdateに書いてたのでなんかおかしくなってたんだな~
void Start()
{
startButton.onClick.AddListener(StartCountdown);
}
void Update()
{
if (isRunning)
{
currentTime -= Time.deltaTime;
if (currentTime <= 0f)
{
EndCountdown();
}
UpdateCountdownText();
}
}
// カウントダウンを開始する
public void StartCountdown()
{
currentTime = totalTime;
isRunning = true;
}
// カウントダウンを終了する
private void EndCountdown()
{
isRunning = false;
currentTime = 0f;
UpdateCountdownText();
// カウントダウンが終了した時の処理を実行する
Debug.Log("Countdown finished!");
}
// カウントダウンの時間を更新する
private void UpdateCountdownText()
{
countdownText.text = currentTime.ToString("F1");
}