これはなに?
Unity初心者がサイコロアプリを作るまでの過程をまとめた記事になります
アセット以外のところは、ビジュアルスクリプティングを利用して作成したいと思います
作ってみる
今回、作っていくのはコチラ
- サイコロの合計の目の履歴を取る
- 履歴を表示する
完成した画面はコチラになります
サイコロの目の履歴を取る
やること
- Listを作成する
- ビジュアルスクリプティング
- 出目をリストに追加する
Listを作成する
- 履歴を保存するためのリストオブジェクトを用意します
ビジュアルスクリプティングがあるオブジェクトの「インスペクター」パネルの「Variables」に「ListDiceHistory
(Aot List)」を追加します
ビジュアルスクリプティング
-
List AddItem
ノードを利用します- List: 参照元は
Get Variable
ノードで取得します - Item: この処理の前に結果を表示するためにString型の目の合計を渡します
- List: 参照元は
動作確認
Variableのリストが増えていくのがわかります
履歴を表示する
やること
- ScrollViewを作成する
- Panelを作成する
- ビジュアルスクリプティング
- リストから取得する
- パネルを作成
- 回数、出た目の合計を代入する
- Viewの先頭に追加する
ScrollViewを作成する
こちらを参考にしてScrollViewを作成しました
「ヒエラルキー」パネルで、UI > ScrollView
を選択して作成します
完成形のScrollViewはコチラになります
- ScrollViewオブジェクト
- 表示位置の調整、表示するスクロールバーの設定、スクロールの移動タイプ設定を行います
-
Horizontal
: チェックを外します -
Movement Type
:Clamped
にします -
Horizontal Scrollbar
: 今回利用しないのでnone
にします
-
Viewportオブジェクト
- 変更なし
-
Contentオブジェクト
- 2つコンポーネントを追加します
- Content Size Fitter
-
Vertical Fit
:Preferred Size
にします
-
- Vertical Layout Group
-
Padding
: 余白を調整します -
Control Child Size
: チェックを外します -
Child Force Expand
: チェックを外します
-
- Content Size Fitter
- 2つコンポーネントを追加します
ビジュアルスクリプティングがあるオブジェクトの「インスペクター」パネルの「Variables」に「CanvasHistoryContent(Game Object)
」を追加します
Panelを作成する
プレハブ化したPanelオブジェクトを作成します
「ヒエラルキー」パネルで、UI > Panel
を選択して作成します
完成形のPanelはコチラになります
- Panelオブジェクト
- Index:
UI > Text (TextMeshPro)
を選択して作成します - DiceValue:
UI > Text (TextMeshPro)
を選択して作成します
- Index:
ビジュアルスクリプティング
- パネルの追加
-
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
ノードで回数、出目のテキストを更新します
-
-
さいごに
苦労したところ
- オブジェクト内のオブジェクトの参照方法を探す
- 履歴の表示を降順にする方法を探す
ココらへんが検索で見つけるのが苦労しました。結果的にドキュメントを読み漁って、試してみてでやりました
オブジェクトの参照方法がわかったので、ビジュアルスクリプティングだけでかなり作れると思います
連載記事