はじめに
こんにちは!今日はUnityを使って、リジッドボディの質量を変更した時に動きがどう変わるかを観察してみましょう。具体的には、地面となる平面と、実験に使う2つのCubeを用意して、その動きを比べてみます。簡単に説明していくので、一緒にやってみましょう!
1. 地面を作成する
- ヒエラルキー(Hierarchy)ウィンドウで右クリックします。
- 「3D Object」を選び、「Plane」をクリックします。
これで地面となる平面が作成されます。この平面を「Ground」と名前を変えておくと分かりやすいですよ。
2. Cubeを2つ作成する
次に実験に使う2つのCubeを作成します。
- 再度、ヒエラルキー(Hierarchy)ウィンドウで右クリックします。
- 「3D Object」から「Cube」を選びます。
1つ目のCubeが作成されました。このCubeを「Cube1」と名前を変えましょう。
もう1つ同じ手順でCubeを作成し、「Cube2」と名前を付けてください。
わかりやすいように色を変更しました。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-17_011211.png)
3. Cubeにリジッドボディを追加する
次に、2つのCubeにリジッドボディコンポーネントを追加します。
- **「Cube1」を選択し、インスペクター(Inspector)ウィンドウで「Add Component」**ボタンをクリックします。
- **「Rigidbody」**を検索して追加します。
- **「Mass」**の値を10に変更します。
同じ手順で、**「Cube2」にもリジッドボディを追加し、「Mass」**の値を20に変更します。
4. 力を加えて動きを観察する
最後に、Cubeに同じ力を加えて、その動きを観察します。
- 「Cube1」にスクリプトを作成し、追加します。スクリプトの内容は以下の通りです。
using UnityEngine;
// Cubeクラスを定義し、MonoBehaviourを継承しています。
public class Cube : MonoBehaviour
{
// Rigidbody型の変数rbをプライベートで宣言します。
private Rigidbody rb;
// 整数型のpublic変数forceを宣言し、力の大きさを格納します。
public int force;
// Startメソッドは、オブジェクトが最初にアクティブになった時に一度だけ呼ばれます。
void Start()
{
// オブジェクトにアタッチされているRigidbodyコンポーネントを取得し、rb変数に格納します。
rb = GetComponent<Rigidbody>();
// 力の大きさを100に設定します。
force = 100;
// rbに対してAddForceメソッドを呼び出し、Z軸方向に力を加えます。
// 力のモードとしてImpulse(衝撃)を使用して、瞬間的に力を加えます。
rb.AddForce(0, 0, force, ForceMode.Impulse);
}
}
- 「Cube1」「Cube2」にこのスクリプトをドラッグ&ドロップでアタッチします。
5. ゲームを実行して観察する
これで準備は完了です。再生(Play)ボタンを押して、ゲームを実行し、2つのCubeの動きを観察しましょう。質量の違いがどのように影響するか見てみてください!
まとめ
リジッドボディの質量を変えることで、同じ力を加えた時の動きがどのように異なるかを観察しました。質量が重いほど、動きが鈍くなることがわかりますね。このようにUnityを使って物理法則を学ぶのはとても楽しいです。ぜひいろいろ試してみてください!
おすすめのアセット
「8 Ball Pool – Billiard Multiplayer Completed Game」は、Unity Asset Storeで提供されるマルチプレイヤー対応のビリヤードゲームテンプレートです。このアセットを使えば、手軽に本格的な8ボールプールゲームを開発できます。
概要
このアセットは、完成されたビリヤードゲームであり、マルチプレイヤー機能が標準搭載されています。Unity環境で簡単にカスタマイズでき、オリジナルのビリヤードゲームを短時間で作成可能です。
特徴
- マルチプレイヤー機能:オンラインで他のプレイヤーと対戦可能。
- 美しいグラフィック:リアルなビリヤード台やボールのデザイン。
- 簡単カスタマイズ:スクリプトやオブジェクトを自由に編集。
- クロスプラットフォーム:PCやモバイル端末で動作。