この記事はVisual Scripting 入門の第3回です
今回は第1,2回で勉強した内容を活用して、連打ゲームをつくります。
連打ゲームの記事は前後編になっており、この記事は前編です。
これまでの記事は下記のリンクから確認できます。
連打ゲームの概要
10秒以内に何回ボタンをクリックすることができるか競うゲームです。
Unityにパッケージをインストール
UI配置のみ行ったサンプルをダウンロードしてください。
https://github.com/Manufuki/ClickGameUISample.git
緑色の「Code」を押しDownload ZIPを選択。ダウンロードしたZIPファイルを解凍してください。
わからなくなってしまったら
筆者が作成した見本をダウンロードしてください。
https://github.com/Manufuki/ClickGame.git
Asset→Import Package→Custom Packageを押します。
ClickGameUpdateを選択し「開く」を押します。
Importを押します。
Import TMP Essentialsを押します。
環境によって表示されないことがありますが問題はありません
Visual Scriptingでボタン入力
インポートしたパッケージのシーン「ClickGameSample」を開きます。
HierarchyにCreateEmptyでGameObjectを追加し、名前を[GameController]に変更します。
AddComponentから[GameController]にScript Machineをアタッチします。
Sciprt MachineのNewを押してグラフを作ります。
Macrosというフォルダを作り、その中に[GameManager]という名前で保存します。
GraphEditorにOn Pointer Clickを追加します。
VariablesにGameObject型の変数を追加します。
変数名は[Button]、ValueにはCanvasの中のButtonを入れます。
ButtonをGraphEditorに入れ、そして以下のようにつなげます。これでボタンの機能は完成です。
On Pointer Clickは左のポートにボタンの役割となるオブジェクトを接続することにより、そのオブジェクトをクリックしたときに実行するようにできます。
Visual Scriptingで計算
連打ゲームのスコア計算と時間計算をしていきます。
基本的な計算ノードは以下です。
今回はAddを使用します。Addにも種類があり、かっこの中は使う変数になっています。
Genericはすべての変数に対応しているので基本的にはGenericと書いてあるAddを選びましょう。
ほかの計算ノードも同様です。
VariablesにInt型とFloat型の変数を追加します。
Int型の変数の変数名[Score]、Valueは0に設定。
Float型の変数の変数名[Time]、Valueは10に設定します。
[Time]と[Score]の変数をGraph Editorに追加します。
スコア機能
Scoreの機能からつくります。
Integer Literalを追加します。
変数の中に1を入力します。
Set Object Variableを追加します。
Set Variableを使うことで変数に代入することができるので、上から2番目のポートで変数部分をScoreに設定します。
一つ下のポートで変数が保存されているオブジェクトを接続し、一番下のポートで代入する値を接続します。
そうすると以下のようなノードになります。
時間制限
次に制限時間の機能をつけます。
Graph EditorにSubtractとGet Delta TimeとIFノードを追加します。
Get Delta Timeは直前のフレームと今のフレームの間の時間をえることができます。
Set Object Variableを追加します。代入する変数をTimeにします。
そして以下のようにノードを接続します。
実行します。Variableに注目しましょう。
設定したボタンをクリックするとScoreの変数が1ずつ上がります。
Timeは時間に合わせて減っていきます。
今回はスコア計算と時間計算について紹介しました。
次回の後編ではテキスト表示とSetActiveとシーン変遷について学びます。
後編の記事は下記のリンクから確認できます。