Unity & C# 学習教材

Start メソッドとスクリプトの仕組み

Unity では C# スクリプトをゲームオブジェクトに紐づけることで、ゲームの動作をプログラムで制御できます。このページでは、スクリプトの作成方法と、最初に理解すべき Start メソッド の仕組みを学びます。

学習目標

前提知識


1. Unity スクリプトとは

Unity のスクリプトは C# で書かれたファイルです。スクリプトは単独では動作しません。ゲームオブジェクトにコンポーネントとして追加(アタッチ) することで、そのゲームオブジェクトの動作を制御できるようになります。


2. スクリプトを作成してアタッチする

スクリプトは単体では動作しません。ゲームオブジェクトにコンポーネントとして追加(アタッチ)することで初めて実行されます。まずはスクリプトをアタッチするためのゲームオブジェクトを用意します。

ステップ 1: 空のゲームオブジェクトを作成する

メニューバーの GameObject → Create Empty を選択します。

GameObject > Create Empty メニュー

ステップ 2: ゲームオブジェクトに名前を付ける

Hierarchy ビューに「GameObject」という名前のオブジェクトが追加されます。何のためのオブジェクトかわかりやすい名前に変更しましょう。

名前を変更するには、Hierarchy ビューでオブジェクトを選択した状態でもう一度クリックするか、Inspector ビュー上部のテキストボックスで変更できます。

Hierarchy ビューでオブジェクト名を変更する

ステップ 3: Add Component からスクリプトを追加する

名前を変更したゲームオブジェクトを選択した状態で、Inspector ビューの Add Component ボタンを押します。テキストボックスに作成するスクリプト名を入力します。まだそのスクリプトが存在しない場合は New script という項目が表示されます。

Add Component でスクリプト名を入力した状態

ステップ 4: スクリプトを新規作成する

New script を選択すると、作成するスクリプト名が確認できます。入力した名前が転写されているのを確認したら Create and Add ボタンを押してください。

New script → Create and Add の確認画面

ステップ 5: アタッチを確認する

プロジェクトにスクリプトファイルが作成され、同時にゲームオブジェクトにアタッチされます。Inspector ビューにスクリプトのコンポーネントが追加されていれば成功です。ゲームを実行するとこのスクリプトが実行されるようになりました。

Inspector ビューにスクリプトコンポーネントが追加された状態


3. MonoBehaviour の基本構造

作成されたスクリプトを開くと、次のようなコードが自動生成されています。

1
2
3
4
5
6
7
8
9
10
11
12
using UnityEngine;

public class MyScript : MonoBehaviour
{
    private void Start()
    {
    }

    private void Update()
    {
    }
}

各部分の大まかな意味を確認しておきましょう。

💡 ポイント: クラス・継承・メソッドの詳細は C# 基礎の各ページで改めて学びます。ここでは「スクリプトはこういう構造になっている」と大まかに把握しておけば十分です。


4. Start メソッドの実行タイミング

Start メソッドは ゲームを開始したとき(Play ボタンを押した直後)に1回だけ呼び出されます

1
2
3
4
private void Start()
{
    // ゲーム開始時に1回だけ実行される
}

対して Update メソッドは 毎フレーム繰り返し呼び出され続けます

メソッド 実行タイミング 用途の例
Start ゲーム開始時に1回 初期配置・初期化処理
Update 毎フレーム 入力検知・継続的な移動処理

ゲームオブジェクトを最初に配置したり初期化したりする処理は Start に書きます。


まとめ


理解度チェック

  1. スクリプトを書いただけで実行されないのはなぜですか?
  2. Start メソッドと Update メソッドの実行タイミングの違いは何ですか?
  3. ゲームオブジェクトの初期位置を設定したい場合、StartUpdate のどちらに書きますか?
解答を見る
  1. スクリプトはゲームオブジェクトに コンポーネントとしてアタッチ しなければ実行されないため。
  2. Start はゲーム開始時に 1回だけUpdate毎フレーム繰り返し 実行される。
  3. Start に書く。初期設定は1回だけ行えばよいため。

次のステップ

Debug.Log でスクリプトの実行を確認する では、Start メソッドが正しく実行されているかを Console ビューで確認する方法を学びます。