見出し画像

【5日目】GWゲーム制作

5日目終わりました。
今日も昨日に引き続き、森の映画祭の事務所「うららか」での作業。

結論から言うと、昨日まで解決できてなかった
・制限時間でリザルト画面へ移動
・20以上入れると自動で減点してリロードさせる
・ランダムで同じ数を連続で出さない
ってのを全部解決・実装できました!
やったー!

「お前まだそんなところかよ」っていうくらい本当に初歩的なことだと思うけど、うまくいったので素直に喜んどく。

軽くどんなことをしたのか以下にメモっときます。


■制限時間でリザルト画面へ移動

コードとかリンクをいくら確認しても合ってるから、どこが原因なのかわからなくなってテンション削られたんだけど、気がつかなかった自分がアホだった。
ビルド設定にシーンを突っ込んでませんでした。誠に申し訳ございませんでした。

■20以上入れると自動で減点してリロードさせる

    void RefreshHAKOText()
    {
        if(HAKO >= 21){
            score -= 20;
            HAKO = 0;
            RefreshScoreText();
            RefreshHAKOText();
            RefreshRanText();
        }
        else
        {
            textHAKO.GetComponent<Text>().text = HAKO.ToString(); ;
            RanNum = RandomUtils.Random(1, 2, 3, 10);
        }

    }

コードを載せるのが非常に恥ずかしい!けどありのままを見せるぜ!
(訳:もし、ここはこうすべきなどありましたら是非教えていただきたいです...切実に...)

基本的にゲームの中身は、加算されたら都度テキストを更新しての繰り返しで進んでいきます。
そこでただ、20のハコの数字を更新するタイミングで「21以上だと減点」って分岐を追加しただけです。

操作によって、コードのどこを通って来るのか、全てを把握しつつ進められるまで時間かかっちゃいました。
多分もっといい方法があると思うし、もしかしたら問題のあるコードかもしれない...常に「更にいい方法」を考えてようと思います。


■ランダムで同じ数を連続で出さない

これまでランダムで生成してた数字が連続でかぶることがあって、操作感を悪くしてたんです。

void RefreshRanText()
    {
        RanNum_next = RanNum;
        textRan.GetComponent<Text>().text = RanNum.ToString();
    }
public static class RandomUtils
    {
        public static T Random<T>(params T[] values)
        {
            return values[UnityEngine.Random.Range(0, values.Length)];
        }
    }

  

public void Reload()
    {
        RanNum = RandomUtils.Random(1, 2, 3, 10);

        while (RanNum == RanNum_next)
        {
            RanNum = RandomUtils.Random(1, 2, 3, 10);
        }
        RefreshRanText();
    }

なので今回、(1,2,3,10)の数字の中からランダムで選択するコードに、同じ数が出なくなるまで生成を繰り返すような文を追加しました。

加算する数字を更新させるタイミングで、RanNum_nextに現在の値を入れて、次にランダム生成を通る時にその数が同じか否かを判断させてる感じです。

本当に載せるの恥ずかしいけどこれが現状...です!
明日の目標は
・スタートのカウントダウンを追加
・デザインをほぼ完成まで作り込む
って感じです。

あと、ブログの書き方?とか説明の仕方とかもうちょい勉強します^^;
引き続き頑張ります!

続く...



最後まで読んでくれてありがとう...