【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は以下です。