UnityUnityメモ

Unity初心者必見!キーを長押ししている間のみ、プログラムを実行させる

Unity

1. はじめに

この記事では、スペースキーを押している間だけCubeが回転する仕組みを作ります。動きのあるゲームを作るための基礎的な技術を学べるので、初心者にぴったりです。

説明はできるだけ簡単に、コードも短くシンプルにまとめています。初心者の方でもすぐに試せるように、Unityの操作手順からスクリプトの実装まで丁寧に解説します。それでは、一緒に楽しく学んでいきましょう!

Unityを触ったことがないという方はコチラの記事から見てみてください!



2. Cubeをシーンに配置する

まずは、シーンに回転させる対象となるCubeを追加します。以下の手順に沿って進めてください。

  1. Unityエディターを開き、シーンビューを確認
    Unityを起動したら、中央にあるシーンビューを確認しましょう。ここにオブジェクトを配置します。
  2. ヒエラルキーウィンドウで右クリック
    画面左側にあるヒエラルキーウィンドウで右クリックします。ヒエラルキーウィンドウは、シーン内に存在するすべてのオブジェクトを管理する場所です。
  3. 「3D Object」→「Cube」を選択
    メニューが表示されるので、「3D Object」にカーソルを合わせてから「Cube」を選びます。これでシーン内にCubeが追加されます。
  4. Cubeの位置を確認・調整
    Cubeがシーンビューに表示されます。選択された状態のCubeは、青・緑・赤の矢印が表示され、自由に移動できます。必要に応じて位置やサイズを調整しましょう。

これで、シーンにCubeを配置する作業は完了です!次は、このCubeを回転させるスクリプトを作成していきます。



3. スクリプトを作成する

それでは、Cubeを回転させるスクリプトを作成していきましょう。手順はとても簡単です!

スクリプトを作成する手順

  1. プロジェクトウィンドウ(画面下部か左側にあります)を右クリックします。
    表示されるメニューから「Create」→「C# Script」を選択してください。
  2. 新しいスクリプトの名前を「RotateCube」に変更します。
    スクリプト名を入力したら、Enterキーを押して確定しましょう。
  3. 作成した「RotateCube」スクリプトをダブルクリックして開きます。
    スクリプトが開かない場合は、Visual Studioや別のコードエディタが正しく設定されているか確認してください。

スクリプトのコードを記述する

スクリプトを開いたら、以下のコードをそのままコピーして貼り付けてください。

using UnityEngine;

public class RotateCube : MonoBehaviour
{
    public float rotationSpeed = 100f;  // 回転のスピードを調整する変数

    void Update()
    {
        // スペースキーを押している間、Cubeが回転する
        if (Input.GetKey(KeyCode.Space))
        {
            transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime);
        }
    }
}

コードの解説

このコードでは以下のような動作を実現しています:

  • rotationSpeed
    Cubeの回転スピードを調整するための変数です。デフォルトでは100f(速さの単位)に設定されていますが、後で自由に変更できます。
  • Update()
    Unityのフレームごとに呼び出されるメソッドで、ここに記述された内容が常にチェックされます。
  • Input.GetKey(KeyCode.Space)
    スペースキーが押されているかどうかを判定します。この条件が満たされたときに回転処理が実行されます。
  • transform.Rotate()
    Cubeを回転させるためのメソッドです。Vector3.upはY軸方向の回転を指し、rotationSpeed * Time.deltaTimeで回転のスムーズさを保っています。

注意点

  • コードを変更した後は、必ず保存(Ctrl + SまたはCmd + S)を忘れないようにしてください。
  • スクリプトをCubeに適用する手順については、次のセクションで説明します。

これでスクリプトの記述が完了しました!次に、このスクリプトをCubeにアタッチして動作させてみましょう。



4. スクリプトをCubeにアタッチする

スクリプトを作成しただけでは、Cubeがその動きを実行することはできません。このステップでは、作成したスクリプトをCubeにアタッチして動作を有効にします。

  1. ヒエラルキーウィンドウでシーン内に配置したCubeをクリックして選択します。これにより、インスペクターウィンドウにCubeの設定が表示されます。
  2. プロジェクトウィンドウで、先ほど作成した「RotateCube」スクリプトを探します。通常は「Assets」フォルダ内に保存されています。
  3. 「RotateCube」スクリプトをクリックして選択し、ドラッグ&ドロップでCubeのインスペクターウィンドウ内にある空白のエリア(「Add Component」の下あたり)に移動します。
  4. 成功すると、インスペクターウィンドウに「RotateCube (Script)」という項目が追加されているはずです。
  5. 「Rotation Speed」フィールドを確認
    「RotateCube」スクリプトにはrotationSpeedというパラメータが公開されています。この値を調整することで、Cubeの回転速度を変更できます。デフォルトは100fに設定されていますが、必要に応じて変更してみましょう。

これで、Cubeにスクリプトが正しくアタッチされました!次のステップで実際に動作を確認しましょう。



5. テストプレイ

いよいよ作成したスクリプトを動かして、Cubeが回転するかを確認してみましょう!

  1. 再生ボタンをクリック
    Unityエディターの上部にある「▶」ボタン(再生ボタン)をクリックして、ゲームを実行します。
  2. スペースキーを押す
    シーンビューまたはゲームビューがアクティブになっている状態で、キーボードのスペースキーを押してみてください。Cubeが回転し始めます!
  3. キーを離す
    スペースキーを離すと、Cubeの回転が止まるはずです。この仕組みが正しく動作していれば成功です!
  4. 注意点
    • 回転スピードが遅いまたは速いと感じた場合は、スクリプト内のrotationSpeedの値を調整してください(例: 50fや200fなど)。
    • スペースキー以外のキーで動作を試したい場合は、スクリプト内のKeyCode.Space部分を他のキーコード(例: KeyCode.A)に変更してみましょう。

これで、キー入力に応じてCubeが動作する仕組みの確認は完了です!次は、さらにカスタマイズして、自分だけの機能を追加してみましょう!



よくある質問(FAQ)

Q
Cubeが回転しません。どうすればいいですか?
A

スクリプトが正しくCubeにアタッチされているか確認してください。また、スペルミスがないかコードを再チェックしましょう。

Q
回転スピードを変えたい場合はどうすればいいですか?
A

スクリプト内のrotationSpeedの値を調整してください。例: 200fにすると速くなります。

Q
他のキーでも動作させたいです。
A

Input.GetKey(KeyCode.Space)KeyCode.Space部分を、希望するキー(例: KeyCode.A)に変更してください。

おすすめのアセット

UModeler X Plusは、Unity内でモデリングと編集ができる強力なツールです。外部の3Dソフトを使わずに、ゲームやアプリのシーン内で直感的に3Dモデルを作成・修正可能です。ポリゴン編集やUVマッピング、テクスチャリングなどの機能が搭載され、効率的に作業できます。特にプロトタイプ作成や簡単なモデル変更に最適です。初心者でも扱いやすいインターフェースで、クリエイティブな自由度を提供します。