Unity Visual Scripting 入門第3回:時間とスコア計算をする方法 [連打ゲーム前編]

この記事はVisual Scripting 入門の第3回です

今回は第1,2回で勉強した内容を活用して、連打ゲームをつくります。

連打ゲームの記事は前後編になっており、この記事は前編です。

これまでの記事は下記のリンクから確認できます。

連打ゲームの概要

10秒以内に何回ボタンをクリックすることができるか競うゲームです。

FIN

FIN

Unityにパッケージをインストール

UI配置のみ行ったサンプルをダウンロードしてください。

https://github.com/Manufuki/ClickGameUISample.git

緑色の「Code」を押しDownload ZIPを選択。ダウンロードしたZIPファイルを解凍してください。

わからなくなってしまったら

筆者が作成した見本をダウンロードしてください。

https://github.com/Manufuki/ClickGame.git

Github

Github

Asset→Import Package→Custom Packageを押します。

Asset→Import Package→Custom Package

Asset→Import Package→Custom Package

ClickGameUpdateを選択し「開く」を押します。

ClickGameUpdate→Open

ClickGameUpdate→Open

Importを押します。

Import

Import

Import TMP Essentialsを押します。

Import TMP Essentials

Import TMP Essentials

環境によって表示されないことがありますが問題はありません

Visual Scriptingでボタン入力

インポートしたパッケージのシーン「ClickGameSample」を開きます。 

HierarchyにCreateEmptyでGameObjectを追加し、名前を[GameController]に変更します。

AddComponentから[GameController]にScript Machineをアタッチします。

GameController→Script Machine

GameController→Script Machine

Sciprt MachineのNewを押してグラフを作ります。

Macrosというフォルダを作り、その中に[GameManager]という名前で保存します。

Macros→GameManager

Macros→GameManager

GraphEditorにOn Pointer Clickを追加します。

On Pointer Click

On Pointer Click

VariablesにGameObject型の変数を追加します。

変数名は[Button]、ValueにはCanvasの中のButtonを入れます。

Add GameObject Variables

Add GameObject Variables

ButtonをGraphEditorに入れ、そして以下のようにつなげます。これでボタンの機能は完成です。

On Pointer Clickは左のポートにボタンの役割となるオブジェクトを接続することにより、そのオブジェクトをクリックしたときに実行するようにできます。

Connect nodes

Connect nodes

Visual Scriptingで計算

連打ゲームのスコア計算と時間計算をしていきます。

基本的な計算ノードは以下です。

Main nodes

Main nodes

今回はAddを使用します。Addにも種類があり、かっこの中は使う変数になっています。

Genericはすべての変数に対応しているので基本的にはGenericと書いてあるAddを選びましょう。

ほかの計算ノードも同様です。

Generic

Generic

VariablesにInt型とFloat型の変数を追加します。

Int型の変数の変数名[Score]、Valueは0に設定。

Float型の変数の変数名[Time]、Valueは10に設定します。

Add variables

Add variables

[Time]と[Score]の変数をGraph Editorに追加します。

スコア機能

Scoreの機能からつくります。

Integer Literalを追加します。

Integer Literal

Integer Literal

変数の中に1を入力します。

1

Set Object Variableを追加します。

Set Object Variable

Set Object Variable

Set Variableを使うことで変数に代入することができるので、上から2番目のポートで変数部分をScoreに設定します。

一つ下のポートで変数が保存されているオブジェクトを接続し、一番下のポートで代入する値を接続します。

Score

Score

そうすると以下のようなノードになります。

Connect nodes

Connect nodes

時間制限

次に制限時間の機能をつけます。

Graph EditorにSubtractとGet Delta TimeとIFノードを追加します。

Subtract

Subtract

Get Delta Timeは直前のフレームと今のフレームの間の時間をえることができます。

Get Delta Time

Get Delta Time


If

If

Set Object Variableを追加します。代入する変数をTimeにします。

そして以下のようにノードを接続します。

Connect nodes

Connect nodes

実行します。Variableに注目しましょう。

設定したボタンをクリックするとScoreの変数が1ずつ上がります。

Timeは時間に合わせて減っていきます。

Play scene

Play scene

今回はスコア計算と時間計算について紹介しました。

次回の後編ではテキスト表示とSetActiveとシーン変遷について学びます。

後編の記事は下記のリンクから確認できます。