Visual Scriptingは旧Boltと言われたものを、正式にUnityに取り込んだもののようですが、ゲームエンジンでこのようなスクリプティングを使うのはUnityだけではないですが、おそらく最もポピュラーなのがUnityのVSではないかと思うので、Scratchで最初に作ってみるような2Dゲームを作ってみます。
全体の画面はこんな感じで、右からTreeが移動してきてPlayerはジャンプしてそれを避ける、プレイ開始からの時間表示を行い、PlayerがFloorから落下してしまったらタイマー停止というもの。猫スプライトとサウンド(Coin)はScratchからインポートしています。
オブジェクトを動かすまでは、
https://qiita.com/K3nsuke/items/a1946fe4dac3513f012b
をそのまま使っています。
実際の動作は、
以下から、オブジェクトごとに割り付けられたスクリプト他を記載します。
<Treeの移動を操作するScript machine>
Treeがあるところまで移動(左側の見えなくなる位置)したら、乱数でスタート位置を右側に設定してやります。
<Playerの状態チェンジ>
state machineでFloorに設置状態とJumping状態を識別して遷移条件を記述します。
<遷移条件 -> Jumping, -> Grounded>
Spaceキー押されたらジャンプ状態に移行
Floorに接地したらGrounded 状態に移行
<Jumpingに対応するスクリプト>
Jumpingステートに入ったら、上方向に力を加えてジャンプ、同時に音を出します。
<時間表示のためのcanvas設定>
ElapsedTimeCtlにはElapsed変数を追加して、時間更新と停止のスクリプトをアタッチします、Elapsedは単なるラベルです。
<ElapsedTimeCtlへのScript machine>
Elapsedタイムの更新と停止、停止はPlayerがFloorから押し出されたことをカスタムイベントとして受け取って対処。
<scene変数の追加>
sceneの中の共通変数(GameEnd)を定義します。
<ゲーム終了判定するScript machine>
Playerにアタッチされて、自分自身がFloorの外に出たことを判定してカスタムイベントを発行します。
この例からもわかるように、裏側ではC#のスクリプトが動いているので、C#から独立したスクリプトブロックにはなっていなくて、多分にC#のコードブロックを意識したものとなっています。したがってVSに慣れればC#でコード書くのも実はそれほど障壁があるものではないと思います。
admin