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

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

Last updated at Posted at 2024-01-13

これはなに?

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

作ってみる

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

  • サイコロの合計の目の履歴を取る
  • 履歴を表示する

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

HistoryView.png

サイコロの目の履歴を取る

やること

  • Listを作成する
  • ビジュアルスクリプティング
    • 出目をリストに追加する

Listを作成する

  • 履歴を保存するためのリストオブジェクトを用意します
    ビジュアルスクリプティングがあるオブジェクトの「インスペクター」パネルの「Variables」に「ListDiceHistory(Aot List)」を追加します

ListDiceHistory.png

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

  • List AddItemノードを利用します
    • List: 参照元はGet Variableノードで取得します
    • Item: この処理の前に結果を表示するためにString型の目の合計を渡します

HistorySave.png

動作確認

Variableのリストが増えていくのがわかります

HistorySaveLog.png

履歴を表示する

やること

  • ScrollViewを作成する
  • Panelを作成する
  • ビジュアルスクリプティング
    • リストから取得する
    • パネルを作成
      • 回数、出た目の合計を代入する
      • Viewの先頭に追加する

ScrollViewを作成する

こちらを参考にしてScrollViewを作成しました
「ヒエラルキー」パネルで、UI > ScrollViewを選択して作成します

完成形のScrollViewはコチラになります

CanvsHistory.png

  • ScrollViewオブジェクト
    • 表示位置の調整、表示するスクロールバーの設定、スクロールの移動タイプ設定を行います
    • Horizontal: チェックを外します
    • Movement Type: Clampedにします
    • Horizontal Scrollbar: 今回利用しないのでnoneにします

HistoryViewScrollView.png

  • Viewportオブジェクト

    • 変更なし
  • Contentオブジェクト

    • 2つコンポーネントを追加します
      • Content Size Fitter
        • Vertical Fit: Preferred Sizeにします
      • Vertical Layout Group
        • Padding: 余白を調整します
        • Control Child Size: チェックを外します
        • Child Force Expand: チェックを外します

HistoryViewContent.png

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

HistoryViewValues.png

Panelを作成する

プレハブ化したPanelオブジェクトを作成します
「ヒエラルキー」パネルで、UI > Panelを選択して作成します

完成形のPanelはコチラになります

PanelHistory.png

  • Panelオブジェクト
    • Index: UI > Text (TextMeshPro)を選択して作成します
    • DiceValue: UI > Text (TextMeshPro)を選択して作成します

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

  • パネルの追加
    • Component InstantiateノードでPanelのクローンを作成します
      • Original: プレハブ化したPanelオブジェクトを参照します
      • Parent: CanvasHistoryContentを参照します
    • Transform Set Sibling IndexノードでContentオブジェクトの先頭に追加します
  • パネル内のTextを更新
    • Count Itemsノードで配列数を取得します
    • Last Itemノードで出目を取得します
    • Transform Findノードでパネル内のTextオブジェクトを取得します
      • Text Mesh Pro UGUI Set Textノードで回数、出目のテキストを更新します

HistoryViewSave.png

さいごに

苦労したところ

  • オブジェクト内のオブジェクトの参照方法を探す
  • 履歴の表示を降順にする方法を探す

ココらへんが検索で見つけるのが苦労しました。結果的にドキュメントを読み漁って、試してみてでやりました
オブジェクトの参照方法がわかったので、ビジュアルスクリプティングだけでかなり作れると思います

連載記事

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