【学習】C# スクリプトの作成とアタッチ(MonoBehaviour の基本)
これまでの学習では、
- GameObject を配置した
- Transform で位置や大きさを設定した
という形でシーンを編集してきました。
前回の「ちなみに」でも触れたとおり、GameObject は C# の側からも扱えるオブジェクトです。配置や見た目はエディタで決めたうえで、動きや判定はコードで制御します。
C# スクリプトをアタッチする
という仕組みが必要です。
今回は C# スクリプトの作成 と GameObject へのアタッチ を学び、Start と Update の役割を理解します。
今日学ぶこと
- MonoBehaviour … Unity のスクリプトの基底クラス
- Start … ゲーム開始時に1回だけ実行される
- Update … 毎フレーム実行される
- アタッチ … スクリプトを GameObject に紐付ける
スクリプトを作成する
- Project ウィンドウで右クリック
- Create → C# Script を選択
- ファイル名を入力(例:PlayerController)
- 作成された .cs ファイルをダブルクリックして Visual Studio で開く
デフォルトのスクリプトの中身
新規作成したスクリプトには、次のようなコードが入っています。
using UnityEngine;
public class PlayerController : MonoBehaviour
{
void Start()
{
}
void Update()
{
}
}
| 要素 | 説明 |
|---|---|
| MonoBehaviour | Unity のスクリプトの基底クラス。これを継承すると Unity から呼び出せる |
| Start() | ゲーム開始時(オブジェクトが有効になったとき)に1回だけ実行される |
| Update() | 毎フレーム(約 1/60 秒ごと)に実行される |
スクリプトをアタッチする
スクリプトを GameObject に紐付けることを アタッチ といいます。
- Project ウィンドウのスクリプトファイルを、Hierarchy の GameObject にドラッグ&ドロップ
- または、GameObject を選択した状態で Add Component をクリックし、スクリプト名で検索して追加
- アタッチされると、Inspector にスクリプトのコンポーネントが表示される
アタッチした GameObject が有効な間、Start と Update が呼ばれます。
Start で初期化する
Start は、オブジェクトが登場したときに1回だけ実行されます。初期化処理を書きます。
void Start()
{
Debug.Log("ゲームが始まりました");
}
Debug.Log は Console ウィンドウにメッセージを出力します。再生して確認できます。
Update で毎フレーム処理する
Update は、毎フレーム実行されます。キャラクターの移動や入力の取得など、継続的な処理を書きます。
void Update()
{
// 毎フレーム実行される
}
注意:Update の中に重い処理を書くと、ゲームが重くなります。
完成コード例
using UnityEngine;
public class PlayerController : MonoBehaviour
{
void Start()
{
Debug.Log("プレイヤーが登場しました");
}
void Update()
{
// ここに毎フレームの処理を書く
}
}
プログラムの流れ
ゲーム開始(再生ボタン)
↓
Start() が1回実行される
↓
Update() が毎フレーム実行される(繰り返し)
↓
ゲーム終了(停止ボタン)
重要ポイント
MonoBehaviour を継承したスクリプトを GameObject にアタッチすると、Unity が Start と Update を呼び出します。
- Start … 初期化。1回だけ実行
- Update … 毎フレーム実行。移動や入力処理に使う
- アタッチ … スクリプトを GameObject にドラッグして紐付ける
- Debug.Log … Console にログを出力。動作確認に便利
発展アイデア
スクリプトの基本が分かったら、次のステップです。
- 変数と Inspector での編集 … public 変数で Inspector から値を設定する
- 入力の取得 … Update でキー入力を受け取り、キャラを動かす
C# スクリプトの作成とアタッチは Unity プログラミングの第一歩 です。次は変数と Inspector の連携を学びましょう。


ディスカッション
コメント一覧
まだ、コメントがありません