Unity Visual Scripting 入門第2回:If文、キー入力、コルーチンで「Hello World」を表示する方法

この記事はVisual Scripting 入門の第2回です。前回の記事は下記のリンクから確認できます。

今回はIf文、キー入力、コルーチンで「Hello World」を表示するプロセスをご紹介します。

Hello Worldとは初めてプログラミングをする時に表示させる言葉です。

If文の使い方

GraphEditorで右クリックをしてIfノードを追加します。

Ifとは条件と一致している場合(True)と不一致の場合(False)で処理を分けることができるものです。

GraphEditor→If

GraphEditor→If

GameObjectのHelloWorldを選択して、Inspector内のVariablesで新しくBoolian(Bool型)の変数を増やします。

(Boolianとは、ある条件が当てはまっていればTrue、異なればFalseで表す変数です。)

今回は名前を「HelloBool」にしました。「HelloBool」をGraphEditorにドラッグ&ドロップします。

HelloBool

HelloBool


HelloBool

HelloBool

ノードを下のようにつなぎます。ノードをつなぐ線の付け根で右クリックをすると線を消すことができます。

OnUpdateノードは毎フレームごとにそれに接続されている処理を実行するノードです。

Conect nodes

Conect nodes


Conect nodes

Conect nodes

Ifノードの紫のポートはBool型の条件を接続します。右のポートはTrueの時の処理を次のノードへつなぐことができます。

If

If

上部の再生ボタンを押してシーンを実行します。

毎フレームごとにIfが処理され「HelloBool」の値がTrueの時にDebug.Logの処理が入ります。

Debug.Log はIfのTrueのポートにつながっているので「HelloBool」のValueをFalseにするとDebug.Logがストップします。Trueに戻せば再び動きます。

Play scene

Play scene

キーを押してHelloWorldを表示

キー入力を実装する方法は2つあります。Input get ButtonとInput get keyの2つがあります。

初めに Input get Button を使います。

今回はAキーを使います。

メインメニューバーにあるEdit→Project Setting→Input Managerを開きます。

Edit→Project Setting→Input Manager

Edit→Project Setting→Input Manager

Sizeを19に変更してください。

Size=19

Size=19

一番下の「Cancel」が複製されるので、そのNameに「A」、Positive Buttonを「a」に設定します。

Name=「A」、Positive Button=「a」

Name=「A」、Positive Button=「a」

Graph Editorに Get Button Down のノードを追加します。

Get Button Down

Get Button Down

補足

Get Button Down:キーを押したときにTrueになります。

Get Button Up:キーを離した時にTrueになります。

Get Button:キーを押している時にTrueになります。

Get Button~

Get Button~

Button Nameに「A」を入力します。

前のノードをつなぎなおし、下のように接続します。

Button Name=A

Button Name=A

Get Button Downはキーが押されたときにTrueとなるので紫のポートに接続します。

シーンを実行しましょう。Aキーを押すとConsoleにHelloWorldが表示されました。

Play scene

Play scene

つぎにInput get keyを使います。

Input get key Downを追加しましょう。

Input get key Down

Input get key Down

KeyにSpaceを選択します。下のようにノードをつなぎなおします。

Key=Space

Key=Space

実行します。Spaceキーを押すとHelloWorldを表示できます。

Play scene

Key=Space

それぞれの違いについてはGetButtonはアプリケーションのユーザー側から入力するキーを変更することができます。

それは、Keyの指定方法がString型であるため変数を異なる文字列にすれば異なるキーでも同じ処理をすることができるからです。一方GetKeyはそれができません。

よって、本番でアプリケーション制作する場合はGetButton、デバッグやプログラミング練習ではGetKeyを使います。

コルーチンを使用してHelloWorldを表示

コルーチンとはある時間が立った後に処理を実行するプログラムのことです。

今回は以下のノードを使用します。

WaitForSecond

数秒(変数)待つ

WaitUntil

条件がTrueの時に再開

WaitWhile

条件がFalseの時に再開

それぞれのノードを追加しましょう。

Add nodes

Add nodes

WaitForSecondから使用します。

コルーチンを使用するためにはOnUpdateのCoroutineにチェックを入れなければなりません。

OnUpdate→Coroutine

OnUpdate→Coroutine

Spaceキーを押した3秒後にHelloWorldを表示します。Delayに「3」を入力します。以下のようにノードをつなげます。

Delay=3

Delay=3

実行します。Spaceキーを押した3秒後にConsoleにHelloWorldを表示できました。

Play scene

Play scene

次にWaitWhileとWaitUntilを使用します。

VariablesからSting型の変数を追加します。名前は「GoodByeWorldString」、値は「GoodByeWorld」と入力します。

Variablesの「HelloBool」と「GoodByeWorldString」をドラッグ&ドロップでGraphEditorに追加します。

WaitWhile&WaitUntil

WaitWhile&WaitUntil

GraphEditorにOnUpdateとDebug.Logを追加し、下のようにノードを接続します。

nUpdate&Debug.Log

nUpdate&Debug.Log

実行します。HelloBoolがFalseの時はWaitWhileが再開されるのでHelloWorld表示されます。

HelloBoolがTrueの時はWaitUntilが再開されるのでGoodByeWorldが表示されます。

Play scene

Play scene

お疲れ様でした。これで第2回は完了です。

次回は連打ゲームの制作を通し、Unitypackageのインストール方法とボタン入力と計算の仕方を紹介します。