[Unity] Visual Scripting : キーボードでオブジェクトを移動させる

11月 14, 2023 | ALL, Unity, ビジュアルスクリプティング

Unity ビジュアルスクリプティングをつかってキーボードからの信号を取得して、ゲームオブジェクトを動かしてみましょう。

1.CubeにVisual Scriptingを追加する

まず、キーボードから操作するためのゲームオブジェクトを作ります。ここではCubeを作成しています。

make a Game Object Cube

次に、作ったゲームオブジェクトにScript Machineを追加します。

add Script Machine component

Script MachineのNewボタンをクリックして新しいGraphを作成します。

Add RIgidbody compornent

PlayerControllerというGraph名にしました。

Add RIgidbody compornent

次に、Rigidbodyを追加します。今回はRigidbodyのVelocity(速度)を変化させてオブジェクトを動かします。

Add RIgidbody compornent

2. Graphを編集する

まずは、簡単に直接キーボードの値(-1 〜 1)をVelocityに設定してみます。
ボタンを離したとき(Up)に、動きが止まるようにボタンUp時の処理を忘れないようにしましょう。ないと、ボタンを離してもオブジェクトが動き続けてしまいます。

Add RIgidbody compornent

ここで一つ問題があります。キーボードの値をそのまま入力しているため、斜め移動のときだけスピードが早くなってしまいます。
この問題を解決するためにキーボードの値をノーマライズ機能を使います。

【ノーマライズなし】

【ノーマライズあり】

スクリプトにノーマライズ(Vector3)を加えていきます。
ノーマライズすることによって出力ベクトルは合計で1になるように変換されます。

キーボード入力オブジェクト移動

ノーマライズすると、1以下なので移動は遅くなります。そこで変数(Speed)を作り、その変数で速さを調整できるようにします。

キーボード入力オブジェクト移動