[Unity] Visual Scripting : キーボードでオブジェクトを移動させる
Unity ビジュアルスクリプティングをつかってキーボードからの信号を取得して、ゲームオブジェクトを動かしてみましょう。
1.CubeにVisual Scriptingを追加する
まず、キーボードから操作するためのゲームオブジェクトを作ります。ここではCubeを作成しています。
次に、作ったゲームオブジェクトにScript Machineを追加します。
Script MachineのNewボタンをクリックして新しいGraphを作成します。
PlayerControllerというGraph名にしました。
次に、Rigidbodyを追加します。今回はRigidbodyのVelocity(速度)を変化させてオブジェクトを動かします。
2. Graphを編集する
まずは、簡単に直接キーボードの値(-1 〜 1)をVelocityに設定してみます。
ボタンを離したとき(Up)に、動きが止まるようにボタンUp時の処理を忘れないようにしましょう。ないと、ボタンを離してもオブジェクトが動き続けてしまいます。
ここで一つ問題があります。キーボードの値をそのまま入力しているため、斜め移動のときだけスピードが早くなってしまいます。
この問題を解決するためにキーボードの値をノーマライズ機能を使います。
【ノーマライズなし】
【ノーマライズあり】
スクリプトにノーマライズ(Vector3)を加えていきます。
ノーマライズすることによって出力ベクトルは合計で1になるように変換されます。
ノーマライズすると、1以下なので移動は遅くなります。そこで変数(Speed)を作り、その変数で速さを調整できるようにします。