記事の内容は間違っていないですが、作り方を大きく変更しました
以下の記事が最新になります!!
これはなに?
Unity初心者がサイコロアプリを作るまでの過程をまとめた記事になります
手探りなところがあり、また制作途中での記事のため、後で修正するかもしれないです
前回の続きになります
作ってみる
今回はタップでサイコロをふる。サイコロの合計が表示されるまで作ってみます
画面タップできるようにする
Canvasを用意
「ヒエラルキー」パネルから「UI > Canvas」を追加します
Canvasについてはこちらを読んだほうがわかりやすいと思いますが、UIを配置していくために使います
「インスペクター」パネルから「UI Scale Mode > Scale With Screen Size」に変更します
こうすることで、表示する画面サイズが変わっても調整して合わせてくれます
透明なImageを用意
「ヒエラルキー」パネルから「UI > Image」を追加します
「UI > Button」でもよかったかもですが、今回はImageで作ります
オブジェクト名を「RolledDice」にします
「Width」「Height」をCanvasと同じサイズに調整して画面いっぱいにします
イメージを透明にしたいので「Color」でアルファ値を0にします
このままだとタップを検知できないので、「インスペクター」パネルの「Add Component」で「Button」を追加します
今回は視覚的な反応とナビゲーションは利用しないので「None」を設定します
タップでサイコロを振るようにする
前回作成したビジュアルスクリプティングを以下のように変更します
1,右側のObject欄で先程追加したイメージオブジェクトを設定します
2.設定したらドラック&ドロップで右側の画面にもっていくとノードが作られます
3.ノード追加で「On Botton Click」を追加します
4.それらを結びます
実行すると画面をタップするとサイコロを振るようになりました
サイコロの合計を画面に表示する
サイコロの合計を取得する
DiceアセットのC#スクリプトに既に用意されているのを利用します
失敗
1.ノード追加で「Dice:Value」を追加します
2.ノード追加で「Debug:Log」を追加します
3.それらを「Dice:Roll」から結びます
実行して確認します
あれ?コンソールに表示された合計と画面のサイコロの合計が合わないです
成功?
1.ノード追加で「Dice:Value」を追加します
2.ノード追加で「Debug:Log」を追加します
3.それらを「On Update」から結びます
実行して確認します
コンソールのログが流れ続けますが、合計数はあっていそうです
成功
Rollingとか変数があったのですが思っていた感じでは使えなかった…
試行錯誤してダイスを振ったときにフラグを立てて、2秒後くらいにチェックして1度だけログに出すみたいな動きを作りました
工夫したのはサイコロが静止しているかが分からない事です
高都度でチェックしないといけなかったのですが、たぶん2秒くらいしたら止まっていると仮定して作りました
合計を画面に表示する
ここはチュートリアルでやったスコア表示と勝敗表示を参考に作ります
付け加えたビジュアルスクリプティングはこんな感じです
今回の成果物
さいごに
なんとかビジュアルスクリプティングだけで動きそうなものができました!!
まだ粗いところはありますが、最後のほうでブラッシュアップしていきたいと思います
連載記事