【Unity入門】コンポーネントとは?英語の意味から理解しよう

広告

Unityを学び始めると、すぐに「コンポーネント」という言葉に出会います。

  • Inspectorに並んでいる項目
  • 「Add Component」ボタン
  • GetComponent というコード

日常会話ではあまり使わない言葉なので、「Unity独自の専門用語なのかな?」と感じる方も多いと思います。

実は、コンポーネントはUnity専用の言葉ではありません。英語の一般的な単語で、IT以外の分野でも広く使われています。この記事では、まず言葉の意味を確認し、そのうえでUnityでの使われ方を整理します。

componentの本来の意味

英語の component は、「構成要素」「全体を構成する一部分」という意味です。

分野コンポーネントの例
自動車エンジンやブレーキなど、車を構成するもの
パソコンCPUやメモリなど、パソコンを構成するもの
電子回路抵抗やコンデンサなど、回路を構成する電子素子
ソフトウェア特定の機能を受け持つ、プログラムのまとまり
UnityGameObjectに機能やデータを追加するもの

日本語の日常会話ではあまり使いませんが、IT・電子機器・製造業などの技術分野ではよく登場します。Unityで使われている意味も、この一般的な意味とほぼ同じです。

Unityでのコンポーネントとは

Unityでは、シーンに置くものはすべて GameObject です。ただし、GameObject自体は「空の入れ物」にすぎません。そこにコンポーネントを取り付けることで、位置や見た目、動きなどの機能を持たせます。

たとえば「プレイヤー」というGameObjectには、次のようなコンポーネントが付いています。

コンポーネント役割
Transform位置・回転・大きさ
Rigidbody物理的な動き(重力、力の影響など)
Collider衝突判定に使う形
AudioSource音の再生

自動車がエンジンやブレーキなどで構成されているように、UnityのGameObjectも、複数のコンポーネントを組み合わせて作られています。なお、Transform はすべてのGameObjectに必ず付いているコンポーネントです。

組み合わせて作れるのが強み

この「必要な機能を組み合わせる」という考え方には、大きな利点があります。

  • 必要な機能だけを追加できる
  • 不要になったら取り外せる
  • 同じコンポーネントを別のGameObjectにも使い回せる

たとえば「物理演算で動く箱」を作りたければ、箱のGameObjectに Rigidbody と Collider を付けるだけです。「動かない壁」にしたければ、Collider だけを付ければ済みます。

自作のスクリプトもコンポーネント

C#で書いたスクリプトも、GameObjectに取り付けるとコンポーネントとして扱われます。MonoBehaviour を継承したクラスが、それにあたります。

using UnityEngine;

public class PlayerJump : MonoBehaviour
{
    private Rigidbody rb;

    void Start()
    {
        // 同じGameObjectに付いているRigidbodyコンポーネントを取得する
        rb = GetComponent<Rigidbody>();

        // 上向きに力を加える(再生すると、一度だけ跳ね上がる)
        rb.AddForce(Vector3.up * 5f, ForceMode.Impulse);
    }
}

GetComponent<Rigidbody>() は、直訳すると「Rigidbodyというコンポーネントを取得する」という意味です。componentが「構成要素」だと分かっていれば、メソッド名の意味もすっと頭に入ります。

このスクリプトを、Rigidbody が付いたGameObjectに取り付けて再生すると、そのGameObjectが一度だけ跳ね上がります。

Webの世界にも出てくる言葉

コンポーネントという言葉は、Unity以外のIT分野でもよく使われます。たとえばWeb開発の「UIコンポーネント」は、ボタンやフォームなど、画面を構成する要素のことです。

最初に「構成要素」という意味を押さえておけば、別の技術を学ぶときにも、言葉で迷いにくくなります。

まとめ

  • コンポーネントは、英語で「構成要素」という意味の一般的な単語
  • Unityでは、GameObjectに機能やデータを持たせるために取り付けるものを指す
  • Transform、Rigidbody、Collider などの標準のコンポーネントも、自作スクリプトもコンポーネント
  • 機能を組み合わせて作る考え方は、Unity以外のIT分野にも共通する

専門用語に出会ったときは、「もともとの英語はどんな意味か?」と考えてみると、理解が早くなります。

訪問数 1 回, 今日の訪問数 1回

広告