UnityUnityメモ

【Unity入門】スペースキーでオブジェクトを真上に打ち上げる方法!

Unity

はじめに

Unityを使ってゲームを作っていると、「ボールを空に向かって発射したい!」とか「スペースキーを押したらオブジェクトが飛んでいったら楽しそう!」って思うこと、ありませんか?

この記事では、スペースキーを押すと、Sphere(ボール)が真上に打ち上がる仕組みを、わかりやすく解説していきます。

使うのは、

  • Cube(キューブ):発射装置のようなイメージです。
  • Sphere(スフィア):打ち上げるボールです。

さらに、**Rigidbody(リジッドボディ)**で物理的な力を加えたり、**プレハブ化(Prefab)**してオブジェクトを管理しやすくしたり、スクリプトで発射処理をコントロールするなど、Unityの基本的なテクニックもいろいろ学べます。

初心者の方でも、ステップごとに進めばしっかり動くようになりますので、安心してついてきてくださいね!
それでは、楽しくやっていきましょう!




ステップ①:3Dオブジェクトの作成

まずは、ゲームの中で使う「Cube(キューブ)」と「Sphere(スフィア)」というオブジェクトを作っていきましょう!

この2つのオブジェクトは、今回の主役です。Cubeは発射台みたいな役割で、Sphereは空に向かってビューンと飛んでいく玉になります。

CubeとSphereを作ろう!

Unityの「ヒエラルキー(Hierarchy)」ウィンドウで、空いてるところを右クリックしてください。メニューが出てくるので、

3D Object → Cube

を選びます。画面に白い立方体(キューブ)が出てきたらOKです!

つづいて、同じようにもう一度ヒエラルキーを右クリックして、

3D Object → Sphere

を選んでください。今度は白いボールのようなオブジェクト(スフィア)が出てきます。

💡ヒント:オブジェクトに名前をつけておくと分かりやすいよ!
ヒエラルキーでオブジェクトを選んで、「F2」キーを押すと名前が変えられます。
Cube →「Shooter」、Sphere →「Ball」みたいな感じで変えてもOK!


SphereにRigidbodyをつけよう!

次に、Sphereに「Rigidbody(リジッドボディ)」というコンポーネントを追加します。これをつけることで、重力や力を使って動かすことができるようになります。

やり方はとってもカンタン!

  1. ヒエラルキーでSphereをクリックして選びます。
  2. 右側の「インスペクター(Inspector)」ウィンドウを見て、
  3. 一番下の「Add Component」ボタンをクリック!
  4. 出てきた検索バーに「Rigidbody」と入力して、出てきた「Rigidbody」を選びます。

これでSphereに物理の力が働くようになります!
これで準備ばっちり、次のステップに進めますよ〜!




ステップ②:Sphereをプレハブ化する

さて、次はSphere(球体のオブジェクト)をプレハブにする作業です!

プレハブってなに?

ちょっとだけ説明すると、「プレハブ」は、オブジェクトの“ひな形”みたいなものです。
これを作っておくと、同じオブジェクトを何回でも、どこでも、簡単に出せるようになるんです!

たとえば、シューティングゲームで何回も弾を出すときに、毎回手でSphereを作るのは大変ですよね?
そんなときにプレハブを使うと、スクリプトから何度でもポンポン作れるようになります。


プレハブの作り方

では、実際にプレハブにしてみましょう!

  1. まず、ヒエラルキー(Hierarchy)ウィンドウにあるSphereを見つけてください。
  2. そのSphereをプロジェクト(Project)ウィンドウにドラッグ&ドロップします。

 👉 すると、プロジェクトビューに青いアイコンで「Sphere」という名前のファイルができます。
 これがプレハブです!


元のSphereはもういらない?

はい、ヒエラルキーにあるSphereは削除してOKです。
プレハブができたので、今後はスクリプトでいつでも呼び出せるようになります!

  • ヒエラルキーのSphereを**右クリック → Delete(削除)**しておきましょう。

これでプレハブの準備は完了です!
次のステップでは、スクリプトを作ってこのプレハブを発射できるようにしていきますよ~!お楽しみに!




ステップ③:スクリプトの作成とCubeへの追加

さて、いよいよスクリプトを作って、スペースキーでSphereを発射できるようにしていきましょう!

スクリプトを作成しよう

まずはスクリプトファイルを作成します。

  1. プロジェクトウィンドウを右クリックします。
  2. Create(作成)」→「C# Script(C#スクリプト)」を選びます。
  3. スクリプトに「BallShot」という名前を付けてください。

これで準備OKです!


スクリプトにコードを入力しよう

作成した「BallShot」スクリプトをダブルクリックして開き、下のコードを入力してください。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BallShot : MonoBehaviour
{
    public GameObject prefab;

    void Update()
    {
        if (Input.GetKeyDown("space"))
        {
            GameObject ball = Instantiate(prefab, new Vector3(0, 1.0f, 0), Quaternion.identity);
            ball.GetComponent<Rigidbody>().AddForce(transform.up * 1000);
        }
    }
}

ポイント解説💡

  • public GameObject prefab; は、発射したいオブジェクト(今回のSphere)を外から設定できるようにしています。
  • Input.GetKeyDown("space") で、スペースキーが押された瞬間をチェックしています。
  • Instantiate() でPrefabを作り出して、AddForce() で上向きに力を加えて打ち上げます。

Cubeにスクリプトをアタッチしよう

スクリプトを書いたら、今度はそれを使う準備だね。

  1. ヒエラルキーウィンドウでCubeをクリックします。
  2. 作成した「BallShot」スクリプトを、Cubeにドラッグ&ドロップしましょう!
  3. Cubeにアタッチしたスクリプトの中にある「Prefab」フィールドに、Sphereのプレハブをドラッグ&ドロップしてください!

これでCubeが、スペースキーを押したときにPrefab(Sphere)を発射する役割を持つようになりました!




ステップ④:動作確認

さあ、いよいよ最後の確認タイムです!

ここまでの作業がちゃんとできていれば、スペースキーを押すだけでSphere(ボール)が真上にビューン!と打ち上がるはずです。それでは、Unityでゲームを再生してチェックしてみましょう。

🎮 ゲームの再生方法

  1. Unityの画面上にある「▶(再生)」ボタンをクリックします。
  2. ゲームビューに切り替わったら、キーボードのスペースキーをポンッと押してみましょう!

🔥「もっとカッコいいエフェクトで発射したい!」と思った方には、Unity Asset Storeの**Stylized Projectiles Pack**がおすすめ! ファンタジー感のあるプロジェクタイルがたくさん入っていて、今回の発射スクリプトにもそのまま使えますよ♪

✅ うまくいってる時の動き

  • Cubeの真上から、Sphereがポーンと飛び出して上に向かっていきます。
  • ちゃんと物理の力(Rigidbody)で飛んでいくので、重力で落ちてくる様子も見れます。

❌ もし動かないときは…

「あれ?ボールが出てこない…」ってときは、次のポイントをチェックしてみてください:

  • Cubeにスクリプト(BallShot.cs)はちゃんとアタッチされているか?
  • スクリプトのPrefabの欄に、Sphereのプレハブをドラッグしてセットしているか?
  • スクリプトの中にエラーがないか?(赤いエラーメッセージが出てないか確認!)

これらを見直してから、もう一度再生してみてくださいね!




よくある質問(FAQ)

Q
Sphereが発射されません。どうすればいい?
A

Rigidbodyがアタッチされているか、PrefabフィールドにSphereが正しく設定されているかを確認してください。

Q
オブジェクトがすぐに消えてしまいます。
A

RigidbodyのDragやMass、スクリプト内のAddForceの値を調整してみましょう。

Q
横方向にも打ち出したい場合は?
A

transform.uptransform.forwardVector3.rightに変えれば、別の方向にも発射できます。

タイトルとURLをコピーしました