この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:7
ページ更新者:atom
更新日時:2026-05-13 05:16:33

タイトル: コンポーネント

これはUnityのコンポーネントに関する記事です。コンポーネントはGameObjectに付与する「機能の部品」で、Transform・Rigidbody・Collider・Renderer・スクリプトなど、Unityの挙動はほぼすべてコンポーネントの組み合わせで作られます。

子ページからコンポーネントの種類を選択してください。

コンポーネントとは

Unityの設計思想はECS(Entity-Component-System)に近い「コンポーネント指向」です。GameObjectは器でしかなく、振る舞いはComponentが担います。1つのGameObjectに複数のComponentを足し算で組み合わせて、必要な機能を構築します。

本ページの子ページ

  • メッシュ — 3Dモデルの形状データ。Mesh Filter / Mesh Renderer と組み合わせて使用

主要なコンポーネント早見

分類コンポーネント役割
基本Transform位置・回転・スケール(全GameObject必須)
描画Mesh Filter形状データの参照
描画Mesh Rendererメッシュを画面に描画
描画Sprite Renderer2Dスプライト描画
描画Skinned Mesh Rendererボーンによる変形を伴う描画
描画Line Renderer / Trail Renderer線・軌跡の描画
物理Rigidbody3D物理挙動(重力・力)
物理Rigidbody 2D2D物理挙動
物理Box Collider / Sphere Collider / Mesh Collider当たり判定
カメラCamera視点
ライトLightDirectional / Point / Spot / Area
Audio Source / Audio Listener音の再生/受信
UICanvas / Button / Text / ImageUI構築
アニメーションAnimatorアニメーション状態遷移
パーティクルParticle Systemエフェクト
スクリプト独自MonoBehaviour独自ロジック

コンポーネントの追加方法

  1. 対象のGameObjectをHierarchyで選択
  2. Inspectorの下部 Add Component をクリック
  3. 名前で検索またはカテゴリから選択して追加

スクリプトから操作する例

// 自分のGameObjectのRigidbodyを取得
Rigidbody rb = GetComponent();
rb.AddForce(Vector3.up * 10);

// 別のGameObjectから取得
Camera cam = mainCameraObj.GetComponent();

// 動的に追加
AudioSource src = gameObject.AddComponent();

RequireComponent 属性

特定のコンポーネントが必須なスクリプトでは、RequireComponent を付けると依存コンポーネントが自動付与されます。

[RequireComponent(typeof(Rigidbody))]
public class PlayerController : MonoBehaviour
{
    void Start() {
        var rb = GetComponent(); // 必ず存在
    }
}

注意点

  • 同じコンポーネントを複数付けると意図しない挙動が起きる(Audio Sourceなど例外あり)
  • 削除する時はEditorで右クリック→Remove Component、コードでは Destroy(component)
  • FindObjectOfType は古い書き方。Unity 2023以降は Object.FindFirstObjectByType 系を推奨

関連