この記事はVisual Scripting 入門の第5回です。前回の記事は下記のリンクから確認できます。
今回はAddForceとTransFormを駆使したオブジェクトの基本操作の方法を解説します。
AddForceを使用して移動する
Hierarchyに空のGameObjectを追加し、[ObjectController]という名前にします。
[ObjectController]にScript Machineをアタッチします。
Newをクリックしグラフを作成します。
Sciprt MachineのNewを押してグラフを作ります。
Macrosというフォルダを作り、その中に[ObjectManager]という名前で保存します。
HierarchyにCubeを追加し、Positionを(0,0.5,0)に設定し、AddComponentから[Rigidbody]を追加します。
今回はこのオブジェクトを動かします。
RigidbodyとはUnityにおいて物理演算をしてくれる機能です。
オブジェクトに重力をつけたり、力を与えたりできます。
次にこのオブジェクトを置くためにHierarchyにPlaneを追加します。
座標を(0,0,0)に設定します。
ObjectControllerのVariableにGameObject型の変数を追加し、名前を[Cube]とし、ValueにCubeを入れます。
スペースキーを押したときに反応するようにノードを追加し、以下のように接続します。
Graph EditorにAdd Forceを追加します。
Forceの値に力を加えたい方向に入力します。
AddForceはオブジェクトに力を加えるノードです。
今回は上に飛ばすので(0,300,0)と入力しました。好きな数を入れてみましょう。
AddForceの上から2番目のノードは動かすオブジェクトを接続します。
Variableから[Cube]をGraph Editorに追加し、以下のようにノードを接続します。
実行します。
Spaceキーを押すとジャンプします。
TransFormを使ってオブジェクトを動かす
移動
Graph EditorにGet Position, Set Position, Vector3Literal, Addを追加します。
AddForceの接続を切断し、CubeからRigidbodyを削除します。
一度追加したCompornentを削除するには、右の3つ並んでいる点を押してRemove Componentを押します。
Variableからもう1つCubeをGraph Editorに追加します。Vector3Literal にはSpaceキーを押したときに移動する距離を入力します。
今回は(0,1,0)と入力します。
Get Positionはノードが接続されているオブジェクトの座標を取得することができます。
Set Positionは真ん中のポートに接続されているノードの座標に、一番下のポートに接続されている座標を代入することができます。
下のようにつなぎなおします。
実行してみましょう。
拡大・縮小
Graph EditorにGet Local Scale, Set Local Scaleを追加します。
Get PositionとSet Positionの接続を切断します。
Vector3Literalの値を(1,1,1)に変更します。
Get Local Scaleはノードが接続されているオブジェクトのスケールを取得することができます。
Set Lacal Scaleは真ん中のポートに接続されているノードのスケールに、一番下のポートに接続されているスケールを代入することができます。
以下のように接続します。
実行します。スペースキーを押すたびに1メートルずつ大きくなっていきます。
回転
RotateをGraph Editorに追加します。
回転は計算方法がPositionやScaleとは異なるので、Rotateという別の関数が用意されています。
拡大・縮小に使ったノードを切断し、以下のように接続します。
今回は30度ずつ回転するので、Vector3の値は(30,0,0)と入力します。
Rotateは上から2番目のポートには今の角度、上から3番目のポートにはどれくらい回転するかを接続します。
実行します。スペースキーを押すたびに30度ずつ回転させることができました。
特定の角度に回転させる
Graph EditorにEuler(Euler), Set Rotationを追加します。
回転に使ったノードを切断し、以下のようにノードを接続します。Eulerの値は(0,30,0)に設定します。
Set Rotationは真ん中のポートに変更するオブジェクトを接続し、一番下にQuaternion型の変数を接続します。
実行します。スペースキーを押すとCubeがY軸に対して30度だけ回転しました。
今回はオブジェクトの動かし方について学びました。
第6回は当たり判定について紹介します。
次回の記事は下記のリンクから確認できます。