LoginSignup
3
2
記事投稿キャンペーン 「2024年!初アウトプットをしよう」

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

Last updated at Posted at 2024-01-13

これはなに?

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

作ってみる

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

  • サイコロをふる
  • 出目を表示する

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

DiceRoll.png

サイコロをふる

やること

  • ダイスのパラメータを追加する
  • 出目を表示するテキストを追加する
  • サイコロをふるボタンを追加する
  • ビジュアルスクリプティング
    • サイコロをふる
    • 出目を表示する

ダイスのパラメータを追加する

  • ダイスの個数、面の数、色を変更できるようにします
  • 「ヒエラルキー」パネルのVisualScripting SceneVariablesを選択します
    • 「インスペクター」パネルの「Variables」に以下を追加します
      • RollDiceCount(Float)」を追加します
      • RollDiceType(String)」を追加します
      • RollDiceMaterial(String)」を追加します

DiceRollSave.png

出目を表示するテキストを追加する

DiceRollCanvas.png

  • 「ヒエラルキー」パネルにUI > Canvasを選択して追加します
    • UI Scale Mode: Scale With Screen Sizeにします

Canvs.png

  • 追加したCanvas内にUI > Text (TextMeshPro)を選択してLabelDiceValueで追加します
    • 非表示にしたいので、オブジェクト名の左にあるチェックを外します

DiceRollText.png

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

DiceRollValues.png

サイコロをふるボタンを追加する

  • 追加したCanvas内にUI > Imaeを選択してButtonDiceRollで追加します
    • Cull Transparent Meshにチェックします
    • Color: アルファー値を0にして透過します

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

サイコロをふる
  • Dice Clearノードで前に作ったダイスを削除します
  • For Loopノードを利用して作成するダイス分ループします
    • Last: RollDiceCountを参照します
    • Body: このFlowの先でダイスの生成をします
  • Dice Rollノードでダイスをふります
    • Dice: RollDiceTypeを参照します
    • Mat: RollDiceMaterialを参照します
    • Spawn point: 画面のどの位置から開始するか決めます
    • Force: ふるサイコロの力を決めます(ふる方向、回転)

DiceRollRun.png

出目を表示する

サイコロをふった事でStateGraphの状態がRolling for DiceからRolled for diceに移動します

State2-3.png

  • 出目が確定するまでWaitをもたせる
    • CooldownノードでWaitします
      • アセットのダイスが止まっているかの判定が微妙だったため
  • 判定
      • Dice As Stringノードでふったダイスの出目をすべて取得します
    • String Containsノードで判定できなかったダイスがあるか探します
      • あった場合はやり直し
  • 出目を取得と表示
    • Dice Valueノードで出目の合計を取得します
    • Text Mesh Pro UGUI Set Textノードで出目のテキストを更新します
    • Game Object Set Activeノードで非表示にしていたテキストを可視化します

DiceRollResult.png

さいごに

苦労したところ

  • サイコロの確定が不安定だったのでWaitをもたせた事

有料のアセットだとダイスごとに確定したか検知できるようになってました
無料のアセットは、ダイスごともなかったためダイスの出目を表示するノードからどうにかして判定を作成しました

連載記事

3
2
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
3
2