UnityUnityメモ

Unityで発射オブジェクトを回転させよう!【初心者向け】

Unity

はじめに

Unityでゲームを作っていると、「オブジェクトを発射したい!」って思うこと、よくありますよね?
たとえばシューティングゲームとか、投げる系のゲームとか…。でも、ただまっすぐ飛ぶだけじゃちょっと物足りないな〜って感じたことありませんか?

そんなときにおすすめなのが、「回転しながら飛んでいくオブジェクト」を作るテクニックです!
見た目のインパクトもアップするし、なんだかゲームがちょっとプロっぽく見えるようになりますよ。

この記事では、スペースキーを押すとCubeが回転しながらビューンと発射される仕組みを、Unity初心者の方でもかんたんに作れるように、やさしく順番に説明していきます!

ではさっそく、作っていきましょう!




ステップ①:回転するCubeを作ろう

まずは、クルクル回りながら動く「Cube(キューブ)」を作ってみましょう!

🔷Cubeをシーンに追加しよう

Unityを開いたら、ヒエラルキーウィンドウで右クリックして、
3D Object」→「Cube」を選びます。
すると、シーンに白い箱みたいなCubeが現れます!

🔷Rigidbodyを追加して動かせるようにしよう

Cubeを選んだ状態で、インスペクターウィンドウの「Add Component」ボタンをクリックします。
出てきた検索バーに「Rigidbody」と入力して選びましょう。

これで物理の力(力や重さ)を使えるようになります。
ただし、今回は空中に浮かせたままにしたいので、

「Use Gravity(重力を使う)」のチェックは外しておいてください。


🔷CubeRotateスクリプトを作ろう

次に、Cubeを回転させるスクリプトを作ります!

プロジェクトウィンドウで右クリック → 「Create」 → 「C# Script」を選んで、
スクリプトの名前を「CubeRotate」にしましょう。

作ったスクリプトをダブルクリックして、開いてください。
そして、次のコードを入力します👇

using UnityEngine;

public class CubeRotate : MonoBehaviour
{
    void Update()
    {
        transform.Rotate(0, 10, 0);
    }
}

このコードは「毎フレーム、Y方向に10度ずつ回転させる」という意味です。
つまり、ゲームを再生するとCubeがクルクル回ってくれるようになります!


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

作った「CubeRotate」スクリプトを、Cubeにドラッグ&ドロップしてアタッチ(取り付け)します。
これで、Cubeが回転する準備ができました!


🔷CubeをPrefab(プレハブ)にしよう

このあと発射できるようにするために、CubeをPrefabにしておきましょう。

  1. Cubeをプロジェクトウィンドウのフォルダの中へドラッグ&ドロップ
  2. すると青いCubeアイコンの「プレハブ」ができます
  3. シーンにある元のCubeは削除してもOK!

これで、回転しながら動けるCubeの準備がバッチリです🎉

次のステップでは、このCubeをスペースキーで発射するしくみを作っていきますよ!




ステップ②:空のオブジェクトを作って発射装置を作ろう

さて次は、「Cube」を飛ばすための発射装置を作っていくよ!

ここでは、空っぽのゲームオブジェクトを使って、スペースキーを押すとCubeがビューン!と飛んでいくようにしていくよ。


🔧 まずは空のオブジェクトを作ろう!

  1. ヒエラルキーウィンドウで右クリックして、
  2. Create Empty(空のオブジェクト)」を選んでね。

これで画面上には何も見えないけど、中身はちゃんとある「発射装置のもと」ができたよ!


📜 スクリプトを作ってみよう!

次は、Cubeを発射するためのスクリプトを作ろう!

  1. プロジェクトウィンドウで右クリック
  2. Create」→「C# Script」を選んで
  3. スクリプト名を CubeShot にしよう!

💻 CubeShot.cs にコードを入力しよう!

CubeShot.csをダブルクリックして開いて、以下のコードを入力してね。

using UnityEngine;

public class CubeShot : MonoBehaviour
{
    public GameObject prefab;

    void Update()
    {
        if (Input.GetKeyDown("space"))
        {
            GameObject ball = Instantiate(prefab);
            ball.GetComponent<Rigidbody>().AddForce(transform.forward * 1000);
        }
    }
}

このコードは、スペースキーを押したときに、Cubeのプレハブを前方向に力を加えて発射する仕組みなんだ!


🧩 スクリプトを空のオブジェクトに追加しよう!

作った CubeShot.cs を、さっき作った空のオブジェクトにドラッグ&ドロップしてアタッチしよう!


📦 プレハブをセットしよう!

最後に、インスペクターの中にある「Prefab」っていう欄に、前に作ったCubeのプレハブをドラッグ&ドロップしてあげよう!

これで準備完了!次のステップで、いよいよ発射してみよう!




ステップ③:ゲームプレイして発射!

さあ、いよいよ完成です!ここまで準備ができたら、実際にゲームを再生して、Cubeを発射してみましょう!

まずは、Unityの上にある再生ボタン ▶ をクリックしてゲームをスタートします。
次に、**キーボードの「スペースキー」**を押してみてください。

するとどうでしょう?
あなたが作ったCubeが、ビューン!と前に飛び出していきながら、クルクル回転しているのが見えるはずです!

もし思った通りに動かなかったら、次のポイントをチェックしてみてください:

  • CubeのPrefabCubeShotスクリプトのプレハブ欄にセットされているか?
  • CubeにRigidbodyが付いていて、Use Gravityのチェックが外れているか?
  • スクリプトが正しいオブジェクトにドラッグ&ドロップされているか?

こういった確認をすれば、だいたいのトラブルはすぐに解決できますよ!

このように、発射と回転の両方を組み合わせるだけで、すごくゲームっぽい演出が簡単に作れちゃいます。たった2つのスクリプトだけで、かなりカッコイイ動きになりますよね!

🎁 さらに見た目をカッコよくしたい人へ!

回転しながら発射されるCubeに**エフェクトをつけたい!**という方には、Unity Asset Storeの「Projectile VFX Pack 01」が超おすすめです!

爆発、光の軌跡、衝撃波など、かっこいいVFXがたくさん入っていて、初心者でもすぐ使えますよ!




✅【まとめ】

今回は、Unityで回転しながら発射されるCubeを作ってみました!

やってみるとわかるけど、実はこれ、すごく簡単なんです。
Cubeにスクリプトで「くるくる回ってね」とお願いして、
あとは空のオブジェクトから「ビューン!」と飛ばすだけ。

スクリプトも短くてシンプルだから、Unity初心者さんでも安心してマネできますよ!

しかも、ただ飛ばすだけじゃなくて、回転を加えることでエフェクトやリアリティがグッとアップします。
たとえば、火の玉やミサイル、ブーメランのような演出にも応用できるので、ぜひ自分のゲームでも使ってみてくださいね!

ちょっとの工夫で、ゲームがもっとカッコよく、もっと楽しくなりますよ〜!




よくある質問(FAQ)

Q
オブジェクトが回転しません。どうすればいい?
A

CubeにCubeRotateスクリプトがアタッチされているか確認してください。また、Update関数が正しく記述されているかもチェックしましょう。

Q
オブジェクトが飛びすぎて見えません。
A

AddForceの値が大きすぎる可能性があります。transform.forward * 1000の数字を小さくして調整してみてください。

Q
Cubeが落ちてしまいます。
A

「Rigidbody」の「Use Gravity」のチェックが外れているか確認しましょう。

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