LoginSignup
2
0

【Unity】ノーコードでサイコロアプリを作ってみる(統計)

Last updated at Posted at 2024-01-23

これはなに?

Unity初心者がサイコロアプリを作るまでの過程をまとめた記事になります
アセット以外のところは、ビジュアルスクリプティングを利用して作成したいと思います

作ってみる

今回、作っていくのはコチラ

  • 統計を更新する

ノーコードで作るのに、結構複雑になってしまったので更新と表示の説明をわけようと思います

完成した画面はコチラになります

StatsView.png

統計を更新する

グラフの表示の最大値を100%にしたいので、最大数を保持するようにしました
最大数の求め方ですが、出目が確定したときに、保持している最大数と比較して更新するようにしました

やること

  • Listを作成する
  • Integerを作成する
  • ビジュアルスクリプティング
    • 統計Dictを更新する
    • 最大値を更新する

Listを作成する

  • 出た出目の出現回数を保存するためのリストオブジェクトを用意します

ビジュアルスクリプティングがあるオブジェクトの「インスペクター」パネルの「Variables」に「DictionaryDiceStats(Aot Dictionary)」を追加します

StatsSave.png

  • 端折ってますが、シーン開始時にGraphScriptで初期化しています
    • 初期化のために、サイコロの個数・面の数をシーン変数にしました

Integerを作成する

  • もっとも出た出目の出現回数を保存するための数値オブジェクトを用意します

ビジュアルスクリプティング内の「Graph Variables」に「StatsMaxCount(Integer)」を追加します

StatsGraphVariable.png

ビジュアルスクリプティング

  • 統計Dictを更新する
    • Dictionary GetItemノードを利用します
      • Dictionary 参照元はGet Variableノードで取得します
      • Key: この処理の前に結果を表示するためにString型の目の合計を渡します
      • Output: 統計Dictに格納されている出目の出現回数が返ってきます
    • Add Inputs2ノードでインクリメントします
    • Dictionary SetItemノードを利用します
      • Dictionary 参照元はGet Variableノードで取得します
      • Key: この処理の前に結果を表示するためにString型の目の合計を渡します
      • Value: Add Inputs2の結果を渡します

→出目の出現回数をDictに記録しました
StatsScript1.png

  • 最大値を更新する
    • For Each Loop Dictionaryノードを利用します
      • Dictionary 参照元はGet Variableノードで取得します
      • Output Value: 統計Dictに格納されている出目ごとの出現回数が返ってきます
    • Greaterノードで最大値と比較します
      • A: For Each Loop DictionaryOutput Value
      • B: 最大値(参照元はGet Variableノードで取得します)
    • ifノードで最大値を超えているかチェック
      • True: 超えている
    • Set Variableノードで最大値を更新します

→これで出目の出現回数で一番多いのを記録しました
StatsScript2.png

さいごに

どうやってグラフを作ろうというのが苦戦した点です
普通のグラフみたいにしてしまうと、画面を突き出る恐れがあったので、グラフの幅を固定にしたくてこんな仕組みになりました

連載記事

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0