yosita/たんすかい Apr/06/2024 17:16

【Unity推理脱出ゲーム】宴のParamTblで犯人当てを実装する

久しぶりの更新になります。
先日、Unityを2022にし宴4にバージョンアップしました。
推理脱出ゲームを夏コミに向けて絶賛開発中です。

今回は犯人当ての画面の作り方です。
演出関連はほぼ入ってないので一旦基本編(最低限の機能に絞った実装)になります。
開発中画面は以下です。


仕様としては以下です。

/// 1、犯人を推理するボタンを押されるとUIを表示
/// 2、宴から犯人数、犯人の名前、犯人の画像、犯人かのフラグ、を取得し、ボタンを生成。
/// 3、ボタンを押されると、ボタンをグレーアウトし、ユーザーの選択を記録
/// 4、OKボタンを押されると、ユーザーの選択を確認し、正解か不正解かを判定
/// 5、正解の場合は、正解用のシナリオを再生し、クリアフラグを立てる
/// 6,不正解の場合は、不正解用のシナリオ再生
宴から取得している
犯人数、犯人の名前、犯人の画像、犯人かのフラグなどは全て可変で
宴エクセルから変更可能です。

必要なパラメーターテーブル
犯人当て用の概要パラメーターテーブル
HanninHitOverviewTbl{}


CharaNumが犯人当てに表示するキャラ数

犯人当て詳細パラメーターテーブル
HanninHitDetailTbl{}


IsHanninがTrueが犯人です。
パラメーターテーブルを2つに分けることで入力内容をシンプルにしています

Unityインスペクターの設定例です


スクリプトは以下です。

HanninHitController.cs (11.02kB)

Download

特に難しい処理は入れてないですが
正解判定を
宴から取得したリスト
犯人フラグ配列(HanninHitArray)と
ユーザー入力配列HanninHitUserArrayの比較を行ってます。
スクリプト箇所は、ResultHanninHitです。
これで仮に犯人が0でも全員犯人でも対応可能(なはず)です。


    public void ResultHanninHit()
    {
        //正解判定
        bool IsCorrect = true;
        for (int i = 1; i < HanninHitArray.Length; i++)
        {
            if (HanninHitArray[i] != HanninHitUserArray[i])
            {
                IsCorrect = false;
                break;
            }
        }

        if (IsCorrect)
        {
            Debug.Log("正解");
            Success();
            
        }
        else
        {
            Debug.Log("不正解");
            Failed();
        }

    }

他には
Unity grid layout group
をキャラボタンの親オブジェクトに配置している為
キャラ数が多くなっても綺麗に配置される想定です。

本日は以上となります。良さそうな演出ができたら
また記事を書きます。
宴4は以下です。

If you liked this article, support the creator with a tip!

Sending tips requires user registration.Find details about tips here.

Monthly Archive

Search Articles