UnityUnityの使い方

Unityの使い方⑤C#スクリプトを作成してみよう

Unity

1. はじめに

こんにちは!Unityの使い方シリーズ第5回へようこそ!
この記事では、Unityを使って「スクリプトを作成してログを表示する」方法を学びます。

ログ(Debug.Log)は、ゲーム開発の基本中の基本で、コードが正しく動いているか確認したり、エラーを見つけたりするのにとても便利です。今回のチュートリアルでは、シンプルなスクリプトを書いて、ゲーム内でメッセージをコンソールに表示する方法を学びます。


2. 3Dオブジェクトを作成して準備する

それでは、Unityのシーンに3Dオブジェクトを追加して、スクリプトを適用する準備をしましょう!今回は「キューブ」をシーンに配置して使ってみます。


① ヒエラルキーウィンドウで3Dオブジェクトを作成する

  1. Unityエディタでヒエラルキー(Hierarchy)ウィンドウを探してください(画面左側にあることが多いです)。
  2. ヒエラルキーウィンドウ内で右クリックします。
  3. 表示されるメニューから「3D Object」→「Cube」を選択します。

これで、シーン内に「キューブ」が追加されます!


これで、スクリプトを適用する準備が整いました!次はスクリプトを作成して、ログを表示する仕組みを作っていきます。




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

それでは、Unityでスクリプトを作成していきましょう!今回は「C#スクリプト」を作成します。このスクリプトにログを表示するコードを書き込んでいきます。


① プロジェクトウィンドウでスクリプトを作成する

  1. プロジェクトウィンドウを開きます(画面下側や左下にあることが多いです)。
    ※もしプロジェクトウィンドウが見当たらない場合は、メニューの「Window」→「General」→「Project」をクリックして表示してください。
  2. プロジェクトウィンドウの空白部分を右クリックします。
  3. 表示されたメニューから「Create」→「C# Script」を選びます。
    (Unity6では「Create」→「Scripting」→「C# Script」)
  4. 新しいスクリプトが作成されるので、「LogScript」と名前を付けます。
    • スクリプト名は後でクラス名と一致する必要があるため、正確に入力してください。

② スクリプトを編集する

  1. 作成したスクリプト「LogScript」をダブルクリックします。
    • すると、コードエディタ(通常はVisual Studio)が自動で開きます。
  2. スクリプトが開いたら、以下のコードを書き込んでください
using UnityEngine;

public class LogScript : MonoBehaviour
{
    // ゲームが開始されたときに1回だけ実行されるメソッド
    void Start()
    {
        Debug.Log("ゲームが開始されました!");
    }

    // 毎フレーム実行されるメソッド
    void Update()
    {
        Debug.Log("毎フレーム実行中...");
    }
}

③ コードの内容を解説

  • using UnityEngine;
    Unityの基本的な機能を使うための宣言です。これがないと、Debug.LogなどUnity専用の機能が使えません。
  • public class LogScript : MonoBehaviour
    この部分で新しいスクリプトを定義しています。MonoBehaviourはUnityで使うスクリプトの基本型です。
  • void Start()
    ゲームが開始された瞬間に1度だけ呼び出されるメソッドです。ここに初期化処理や開始メッセージを記述します。
  • void Update()
    毎フレーム(通常1秒間に60回)実行されるメソッドです。ゲーム中の動作をチェックするのに使います。
  • Debug.Log("メッセージ");
    Unityのコンソールにメッセージを表示します。今回の例では「ゲームが開始されました!」や「毎フレーム実行中…」というログを表示します。

④ スクリプトを保存する

コードを書き終えたら、**Ctrl + S(または Command + S)**でスクリプトを保存します。


これでスクリプトの作成が完了しました!次は、このスクリプトをオブジェクトにアタッチして動かしてみましょう!



4. スクリプトをオブジェクトにアタッチする方法

作成したスクリプトをUnityのオブジェクトにアタッチして、実際に動かしてみましょう!今回は「LogCube」というキューブにスクリプトをアタッチします。


① アタッチするオブジェクトを選択する

  1. ヒエラルキー(Hierarchy)ウィンドウから、先ほど作成した「LogCube」をクリックします。
    • 選択すると、インスペクター(Inspector)ウィンドウにそのオブジェクトの詳細情報が表示されます。

② スクリプトをドラッグ&ドロップでアタッチする

  1. プロジェクトウィンドウで作成したスクリプト「LogScript」を探します。
  2. スクリプトを左クリックしたままドラッグし、インスペクターウィンドウの「LogCube」にドロップします。
    • ドロップすると、LogCubeのインスペクターに「LogScript」という名前のコンポーネントが追加されます。

③ アタッチの確認

  1. インスペクターウィンドウで、LogCubeに「LogScript (Script)」が表示されていることを確認します。
    • これが見つかれば、スクリプトのアタッチは完了です!

④ 別の方法(Inspectorで手動追加する方法)

もしドラッグ&ドロップが難しい場合は、次の手順でもアタッチできます:

  1. LogCubeを選択した状態で、インスペクターウィンドウの一番下にある「Add Component」ボタンをクリックします。
  2. 検索バーに「LogScript」と入力し、出てきたスクリプトをクリックします。
  3. これでLogScriptがLogCubeに追加されます。

これでスクリプトがオブジェクトにアタッチされました!次は、ゲームを実行してログが正しく表示されるかを確認してみましょう。




5. 動作確認

それでは、作成したスクリプトが正しく動作するか確認してみましょう!以下の手順で実行します。


① ゲームを再生する

  1. Unityエディタの上部にある「再生ボタン(Play)」をクリックします。
    • ボタンは三角形のアイコンで、シーンビューが「ゲームビュー」に切り替わります。
  2. ゲームが開始されると、作成したスクリプトのStart()メソッドとUpdate()メソッドが実行されます。

② コンソールウィンドウを確認する

  1. Unityエディタの「コンソール(Console)ウィンドウ」を開きます。
    • コンソールウィンドウが見当たらない場合は、上部メニューの「Window」→「General」→「Console」をクリックして表示してください。
  2. コンソールに次のログが表示されていることを確認します:
    • ゲームが開始されました!
      Start()メソッドからのログ)
    • 毎フレーム実行中…
      Update()メソッドからのログがフレームごとに繰り返し表示されます)

③ 再生を停止する

  1. 再生中はUnityエディタ上部の再生ボタンが青くなります。
  2. 再生を停止するには、もう一度**再生ボタン(Play)**をクリックします。

④ 動作確認のポイント

  • **「ゲームが開始されました!」**が一度だけ表示されるのは、Start()メソッドがゲーム開始時に1回だけ呼ばれるからです。
  • **「毎フレーム実行中…」**が何度も表示されるのは、Update()メソッドが毎フレーム実行されるからです。



6. まとめ

お疲れさまでした!この記事では、Unityでスクリプトを作成してログを表示する方法を学びました。


今回のポイント
  • 3Dオブジェクトを作成:キューブを作成し準備。
  • スクリプトを作成Start()でゲーム開始時、Update()で毎フレームログを出力。
  • オブジェクトにアタッチ:ドラッグ&ドロップで簡単に設定。
  • 動作確認:コンソールでログを確認。

Unityでスクリプトを使いこなせるようになると、ゲームの動きを自分でプログラムできるようになります。デバッグログの活用はその第一歩です。この記事を参考に、どんどんスクリプトを書いてUnityを楽しんでくださいね!

Unity初心者でも簡単!アセットを活用してゲーム開発を加速しよう!

Unity Asset Storeには、初心者でもすぐに使える便利なアセットがたくさんあります。
でも「どれを使えばいいの?」「どう活用すればいいの?」と迷っていませんか?

この記事では、初心者向けのおすすめアセットとその活用法を詳しく解説!
ゲーム開発をもっと楽しく、効率的に進めたいなら必見です!




よくある質問

Q
Debug.Logって何ですか?
A

Unityのコンソールにメッセージを出力する機能です。コードの動作確認やエラーの追跡に使います。

Q
毎フレームログを出す以外に何ができますか?
A

オブジェクトの動きをプログラムしたり、条件に応じてメッセージを出力したりできます。例えば、タイマーやスコア管理なども可能です。

Q
Update()メソッドのログが多すぎます。どうすればいいですか?
A

条件分岐を使って必要なタイミングだけログを出すように工夫してください。例えば、キー入力を検出するコードを入れると便利です。

if (Input.GetKeyDown(KeyCode.Space))
{
    Debug.Log("スペースキーが押されました!");
}