← SEARCHABLE ARCHIVE
Unity · 2026-07-05

Unityはどのようにゲームを構成しますか?

GameObject、Component、ライフサイクルから理解する

INTERACTIVE READING MODE →

本ブログ作成文は、講義を目指して製作されました。 また、作成された文章の情報も間違っている可能性がありますので、ご注意ください。

Unityは、ゲームオブジェクトに必要な機能をComponentに貼り付けてゲームを構成するエンジンです。 継承構造を深くするよりも小さな機能を組み合わせる方法に近い。

GameObjectは空のボウルに近い

Sceneに見えるキャラクター、カメラ、照明はほとんどGameObjectだ。 しかし、GameObject 1つだけでは画面に見えたり動かない。

Player GameObject
├─ Transform
├─ SpriteRenderer
├─ Rigidbody2D
└─ PlayerController

Transform銀の位置および回転、サイズがある。 SpriteRendererはイメージを描き、Rigidbody2Dは物理計算に参加します。 開発者が作ったC#スクリプトも一つのComponentになる。

MonoBehaviourのライフサイクル

Unityは決まった時点でMonoBehaviour関数を呼び出します。

using UnityEngine;

public class PlayerMover : MonoBehaviour
{
    [SerializeField] private float speed = 5f;

    private void Start()
    {
        Debug.Log("Player 準備完了");
    }

    private void Update()
    {
        float x = Input.GetAxisRaw("Horizontal");
        transform.position += Vector3.right * x * speed * Time.deltaTime;
    }
}

Awakeは、自分の初期状態を準備するとき、Startは、最初のフレームの前に他のオブジェクトとリンクするときによく使用されます。 Updateはフレームごとに呼び出されるので、入力と一般的な更新を処理するのに最適です。

物理力を適用すると、一定間隔で呼び出されるFixedUpdateを考える。 すべてのコードUpdateに入れるより実際に毎フレーム必要な作業かまず確認しなければならない。

シーンとプリファブ

シーンは、現在画面に配置されているオブジェクトの集まりです。 Prefabは、再利用するGameObject設定をアセットとして保存したものです。

同じ敵を複数回配置するたびに、ComponentをリセットせずにPrefabを複製することができる。 変更した内容も、Prefabを基準にして複数のインスタンスに反映することができる。

Unityを始めるときは、Scene一つにプレイヤー、フロア、目標ポイントだけを作った後、入力から衝突まで1つの流れを完成してみるのが良い。 GameObjectが何であるかより、各Componentがどのような責任を持つかを区別することがより重要です。