この記事はVisual Scripting 入門の第2回です。前回の記事は下記のリンクから確認できます。
今回はIf文、キー入力、コルーチンで「Hello World」を表示するプロセスをご紹介します。
Hello Worldとは初めてプログラミングをする時に表示させる言葉です。
If文の使い方
GraphEditorで右クリックをしてIfノードを追加します。
Ifとは条件と一致している場合(True)と不一致の場合(False)で処理を分けることができるものです。
GameObjectのHelloWorldを選択して、Inspector内のVariablesで新しくBoolian(Bool型)の変数を増やします。
(Boolianとは、ある条件が当てはまっていればTrue、異なればFalseで表す変数です。)
今回は名前を「HelloBool」にしました。「HelloBool」をGraphEditorにドラッグ&ドロップします。
ノードを下のようにつなぎます。ノードをつなぐ線の付け根で右クリックをすると線を消すことができます。
OnUpdateノードは毎フレームごとにそれに接続されている処理を実行するノードです。
Ifノードの紫のポートはBool型の条件を接続します。右のポートはTrueの時の処理を次のノードへつなぐことができます。
上部の再生ボタンを押してシーンを実行します。
毎フレームごとにIfが処理され「HelloBool」の値がTrueの時にDebug.Logの処理が入ります。
Debug.Log はIfのTrueのポートにつながっているので「HelloBool」のValueをFalseにするとDebug.Logがストップします。Trueに戻せば再び動きます。
キーを押してHelloWorldを表示
キー入力を実装する方法は2つあります。Input get ButtonとInput get keyの2つがあります。
初めに Input get Button を使います。
今回はAキーを使います。
メインメニューバーにあるEdit→Project Setting→Input Managerを開きます。
Sizeを19に変更してください。
一番下の「Cancel」が複製されるので、そのNameに「A」、Positive Buttonを「a」に設定します。
Graph Editorに Get Button Down のノードを追加します。
補足
Get Button Down:キーを押したときにTrueになります。
Get Button Up:キーを離した時にTrueになります。
Get Button:キーを押している時にTrueになります。
Button Nameに「A」を入力します。
前のノードをつなぎなおし、下のように接続します。
Get Button Downはキーが押されたときにTrueとなるので紫のポートに接続します。
シーンを実行しましょう。Aキーを押すとConsoleにHelloWorldが表示されました。
つぎにInput get keyを使います。
Input get key Downを追加しましょう。
KeyにSpaceを選択します。下のようにノードをつなぎなおします。
実行します。Spaceキーを押すとHelloWorldを表示できます。
それぞれの違いについてはGetButtonはアプリケーションのユーザー側から入力するキーを変更することができます。
それは、Keyの指定方法がString型であるため変数を異なる文字列にすれば異なるキーでも同じ処理をすることができるからです。一方GetKeyはそれができません。
よって、本番でアプリケーション制作する場合はGetButton、デバッグやプログラミング練習ではGetKeyを使います。
コルーチンを使用してHelloWorldを表示
コルーチンとはある時間が立った後に処理を実行するプログラムのことです。
今回は以下のノードを使用します。
WaitForSecond |
数秒(変数)待つ |
WaitUntil |
条件がTrueの時に再開 |
WaitWhile |
条件がFalseの時に再開 |
それぞれのノードを追加しましょう。
WaitForSecondから使用します。
コルーチンを使用するためにはOnUpdateのCoroutineにチェックを入れなければなりません。
Spaceキーを押した3秒後にHelloWorldを表示します。Delayに「3」を入力します。以下のようにノードをつなげます。
実行します。Spaceキーを押した3秒後にConsoleにHelloWorldを表示できました。
次にWaitWhileとWaitUntilを使用します。
VariablesからSting型の変数を追加します。名前は「GoodByeWorldString」、値は「GoodByeWorld」と入力します。
Variablesの「HelloBool」と「GoodByeWorldString」をドラッグ&ドロップでGraphEditorに追加します。
GraphEditorにOnUpdateとDebug.Logを追加し、下のようにノードを接続します。
実行します。HelloBoolがFalseの時はWaitWhileが再開されるのでHelloWorld表示されます。
HelloBoolがTrueの時はWaitUntilが再開されるのでGoodByeWorldが表示されます。
お疲れ様でした。これで第2回は完了です。
次回は連打ゲームの制作を通し、Unitypackageのインストール方法とボタン入力と計算の仕方を紹介します。