これはなに?
Unity初心者がサイコロアプリを作るまでの過程をまとめた記事になります
アセット以外のところは、ビジュアルスクリプティングを利用して作成したいと思います
作ってみる
今回、作っていくのはコチラ
- 統計を更新する
ノーコードで作るのに、結構複雑になってしまったので更新と表示の説明をわけようと思います
完成した画面はコチラになります
統計を更新する
グラフの表示の最大値を100%にしたいので、最大数を保持するようにしました
最大数の求め方ですが、出目が確定したときに、保持している最大数と比較して更新するようにしました
やること
- Listを作成する
- Integerを作成する
- ビジュアルスクリプティング
- 統計Dictを更新する
- 最大値を更新する
Listを作成する
- 出た出目の出現回数を保存するためのリストオブジェクトを用意します
ビジュアルスクリプティングがあるオブジェクトの「インスペクター」パネルの「Variables」に「DictionaryDiceStats(Aot Dictionary)」を追加します
- 端折ってますが、シーン開始時にGraphScriptで初期化しています
- 初期化のために、サイコロの個数・面の数をシーン変数にしました
Integerを作成する
- もっとも出た出目の出現回数を保存するための数値オブジェクトを用意します
ビジュアルスクリプティング内の「Graph Variables」に「StatsMaxCount(Integer)」を追加します
ビジュアルスクリプティング
- 統計Dictを更新する
-
Dictionary GetItem
ノードを利用します- Dictionary 参照元は
Get Variable
ノードで取得します - Key: この処理の前に結果を表示するためにString型の目の合計を渡します
- Output: 統計Dictに格納されている出目の出現回数が返ってきます
- Dictionary 参照元は
-
Add Inputs2
ノードでインクリメントします -
Dictionary SetItem
ノードを利用します- Dictionary 参照元は
Get Variable
ノードで取得します - Key: この処理の前に結果を表示するためにString型の目の合計を渡します
- Value:
Add Inputs2
の結果を渡します
- Dictionary 参照元は
-
- 最大値を更新する
-
For Each Loop Dictionary
ノードを利用します- Dictionary 参照元は
Get Variable
ノードで取得します - Output Value: 統計Dictに格納されている出目ごとの出現回数が返ってきます
- Dictionary 参照元は
-
Greater
ノードで最大値と比較します- A:
For Each Loop Dictionary
のOutput Value
- B: 最大値(参照元は
Get Variable
ノードで取得します)
- A:
-
if
ノードで最大値を超えているかチェック- True: 超えている
-
Set Variable
ノードで最大値を更新します
-
さいごに
どうやってグラフを作ろうというのが苦戦した点です
普通のグラフみたいにしてしまうと、画面を突き出る恐れがあったので、グラフの幅を固定にしたくてこんな仕組みになりました
連載記事