はじめに
この記事ではUnityで物理マテリアルを使ってオブジェクト(例えばCube)が斜面を滑り落ちる場面を作り、スペースキーを押すことで抗力を高めてオブジェクトを停止させる方法について解説します。
1.新しいプロジェクトを作成
まず、Unityを起動して新しい3Dプロジェクトを作成します。
2. Cubeをシーンに追加
次に、斜面を滑り落ちるオブジェクトとしてCubeをシーンに追加します。
- Hierarchyウィンドウで右クリック
- 3D Object → Cubeを選択
Cubeがシーンに追加されました。
Rigidbodyの追加
CubeにRigidbodyを追加して、物理挙動を適用します。
- HierarchyウィンドウでCubeを選択
- InspectorウィンドウでAdd Componentをクリック
- Rigidbodyを検索して選択
3. 斜面を作成
Cubeが滑り落ちる斜面を作成します。
- Hierarchyウィンドウで右クリック
- 3D Object → Planeを選択
Planeがシーンに追加されました。これを斜面にするために、以下のように回転させます。
- Inspectorウィンドウで、RotationのZ軸に30度と入力します。
これでCubeが滑り落ちる斜面ができました。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-20_173632.png)
4. 物理マテリアルの作成
次に、Cubeが滑りやすくなるように物理マテリアルを作成します。
- Projectウィンドウで右クリック
- Create → Physics Materialを選択し、名前を付けます。
新しい物理マテリアルが作成されました。
. 物理マテリアルの設定
作成したPhysics Materialを設定します。
- Inspectorウィンドウで、DynamicFrictionとStaticFrictionの値を0.1に設定します。
- FrictionCombineをMinimumに変更します
- Projectウィンドウから作成したPhysics Materialを選択し、Cubeにドラッグ&ドロップします。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-20_173835.png)
これでCubeは斜面を滑り落ちやすくなりました。
5.スクリプトの作成
次に、スペースキーを押すことで抗力を高めてCubeを停止させるスクリプトを作成します。
- Projectウィンドウで右クリック
- Create → C# Scriptを選択し、名前を「StopCube」に変更します。
スクリプトを以下のように編集します。
using UnityEngine;
public class StopCube : MonoBehaviour
{
private Rigidbody rb;
public float dragOnSpace = 20f;
private float originalDrag;
void Start()
{
rb = GetComponent<Rigidbody>();
originalDrag = rb.drag;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rb.drag = dragOnSpace;
}
if (Input.GetKeyUp(KeyCode.Space))
{
rb.drag = originalDrag;
}
}
}
6. スクリプトをCubeにアタッチ
作成したスクリプトをCubeにアタッチします。
- Projectウィンドウで「StopCube」スクリプトを選択
- HierarchyウィンドウのCubeにドラッグ&ドロップ
これで準備は完了です。プレイボタンを押してシーンを再生すると、Cubeが斜面を滑り落ち、スペースキーを押すとCubeが停止するのを確認できます。
まとめ
以上が、Unityで物理マテリアルを使用してオブジェクトが斜面を滑り落ちる場面を作成し、スペースキーを押すことで抗力を高めてオブジェクトを停止させる方法です。楽しんで学んでください!
おすすめのアセット
スノーボードゲームスターターパックは、Unityでスノーボードゲームを簡単に作成できるテンプレートです。このパックには、滑らかなキャラクターコントロール、リアルな物理挙動、シンプルなUI、スコアシステムなど、必要な機能が揃っています。ゲーム開発の基礎を学びながら、オリジナルのスノーボードゲームを作ってみましょう。