重要なお知らせ:誠に勝手ながら当サイト(unityroom質問掲示板)は2021年10月31日をもちまして閉鎖させていただきます。ご利用誠にありがとうございました。

unityroom.com については引き続きご利用いただけます。

0 支持
300 閲覧

現在、3ステージ制のタイムアタック+獲得スコアで競う2Dアクションゲームを製作しており、リザルト画面でクリアタイムとスコアを表示したいのですが、各ステージごとではなく最終ステージの結果のみが表示されるという状況に陥ってしまっています。

それぞれの結果を反映させるためには、スクリプトを分けるのがやはり得策なのでしょうか?

教えていただければ幸いです。

Score.cs

void Awake()
{
    score = 0;
}
void Update()
{
    scoreText.text = $"Score : { score.ToString("0000") }";                       //「score : ~~」表記
}

public static int GetScore()
{
    return score;
}

public void ScorePlus()
{
    score += 150;
}

Timer.cs

    void Awake()
{
    time = 0;
}
void Update()
{
    timerText.text = $"Time : { time.ToString("N2") }";                     //「Time : ~~.~~」表記

    //ゲーム中かどうか
    isPlaying = check.IsPlaying();

    if(isPlaying)
    {
        time += Time.deltaTime;                                                          //前フレーム→今フレームの時間差を経過時間として加算
    }
}

public static float GetTime()
{
    return time;
}

Result_Score.cs

void Start()
{
    score = Score.GetScore();

    scoreText.text = $"Score : { score.ToString("0000") }";                       //「score : ~~」表記
}

Result_Time.cs

    void Start()
{
    time = Timer.GetTime();

    timeText.text = $"Time : { time.ToString("N2") }";                     //「Time : ~~.~~」表記
}
初心者 (140 ポイント) | 300 閲覧

ログインまたはユーザー登録してから回答してください。

関連する質問

2021-02-08 質問・回答をMarkdownで入力できるようにしました。
2020-09-03 新たなスパム対策を導入しました。

181 質問

161 回答

165 コメント

221 ユーザー