【Unity入門】AddForceでオブジェクトに力を加える

2021年11月5日

オブジェクトに力を加えることができます。

やり方は、力を加えたいオブジェクトにRIgidbodyコンポーネントを追加した後に、RigidbodyコンポーネントのAddForceという関数を使うだけです。

実際にやってみる

準備

それでは、実際にオブジェクトに力を加えてみましょう。

まずは、以前作成した、『Unity Basics』というプロジェクトを開いてください。

『Unity Basics』を開いたら、オブジェクトに力を加えるシーンを作りましょう。

Scenesフォルダの中に作成します。

ProjectウィンドウでScenesフォルダを選択しましょう。

選択した状態で『+』ボタンを押しましょう。

色々と出てくるので、

『Scene』をクリックしましょう。

すると、Scenesフォルダの中に

新しくSceneが作成されます。

Sceneの名前を『AddForce』に変更しておきましょう。

今回は『AddForcet』の中でやっていきたいので、Sceneを移動します。

『AddForce』をダブルクリックしましょう。

すると、Sceceを移動することができます。

Hierarchyウィンドウを見ると、現在のSceneが『AddForce』に変わっていますね。

次にオブジェクトに力を加えるスクリプトを作りましょう。

Scriptsフォルダを選択してください。

選択した状態で『+』ボタンを押しましょう。

色々と出てくるので『C# Scripts』を選択します。

すると、新しくスクリプトが作成されます。

名前が確定してしまう前に『AddForceScript』と変更しましょう。

名前を変更したら、スクリプトを編集していきましょう。

AddForcetScriptをダブルクリックしてください。

すると、VIsual Studioが起動して、AddForceScriptを編集できるようになります。

オブジェクトに力を加えてみる

それでは、オブジェクトに力を加えてみましょう。

今回は、スタート時に3Dオブジェクトに力を加えて右下に落下するようにしようと思います。

まずは適当な3Dオブジェクトを作りましょう。

Hierarchyウィンドウで『+』ボタンを押してください。

色々と出てくるので、3D Object > Cubeと押していきます。

すると、立方体の3D オブジェクトが作成されます。

次に作った3D オブジェクトに物理現象を適用しましょう。

HierarchyウィンドウでCubeを選択してください。

選択したらInspectorウィンドウで『Add Component』を押してください。

どのコンポーネントを追加するのか聞かれるので、Physics

Rigidbodyと押していきます。

すると、Rigidbodyコンポーネントが追加されます。

これで物理現象が適用されるようになったので、この状態で実行するとスタートと同時に落下するはずです。

試しに実行してみましょう。

再生ボタンを押してください。

すると、予想通り落下しましたね。

次は、スタートと同時に右方向にも力が加わるようにしましょう。

そのために、コードを書いていきます。

まずは、Rigidbodyコンポーネントを取得する記述をしましょう。

Start関数の中に、

Rigidbody rigidbody = gameObject.GetComponent<Rigidbody>();

と記述しましょう。

コードについて説明しておきます。

まず、gameObjectというのは

スクリプトを追加したオブジェクト、今回であればCubeのことです。

そのCubeに付いているRigidbodyコンポーネントをGetComponent関数を使って取得しています。

<>の中にはRigidbodyと記述しているため、

Rigidbodyコンポーネントが取得できます。

取得したRigidbodyコンポーネントは、Rigidbody型の

変数rigidbodyに格納されます。

次に、取得したRigidbodyコンポーネントを使って、AddForceというオブジェクトに力を加える関数を使ってみましょう。

先ほどの記述の下に、

rigidbody.AddForce(1000, 0, 0);

と記述しましょう。

コードについて説明しておきます。

rigidbodyというのは

Rigidbodyコンポーネントが格納されている変数です。

AddForceというのは

Rigidbodyコンポーネントが付いているオブジェクトに力を加える関数です。

第一引数には、X軸方向に加える力、第二引数には、Y軸方向に加える力、第三引数には、Z軸方向に加える力を記述します。

今回は、第一引数に『1000』と記述されているので、

X軸方向に1000の力が加わります。

第二引数、第三引数は『0』なので、

Y軸方向、Z軸方向には力が加わりません。

この状態で実行すると、Cubeにはスタートと同時に重力とX軸方向に力が加わるので、右下に落下するはずです。

実際にそうなるのか実行して確かめてみましょう。

スクリプトを保存して、Unityエディタに戻ってください。

Unityエディタに戻ったら、再生ボタンを押してみましょう。

すると、予想通りスタートと同時にCubeが右下に落ちていきますね。

このようにして、オブジェクトに力を加えることができます。