4.

ゲームオブジェクト(Game Object)

編集

これはUnityのゲームオブジェクト(Game Object)に関する記事です。

■ゲームオブジェクトとは?

    ゲームオブジェクトとはキャラクターや地形、オーディオといったシーンを構成する1つ1つの要素です。Unityではシーン上に存在するすべてのものがGameObjectとして表現され、Hierarchyウィンドウにツリーで並びます。

GameObjectの中身

GameObject自体はほぼ「空の入れ物」です。実際の振る舞いはコンポーネントとして付与します。最低でも Transform コンポーネントは必ず付属します。

項目内容
Name表示名(Hierarchy / コードからの検索に使う)
Tag分類用ラベル(FindWithTag等)
Layerレイヤー(衝突制御、カメラ描画フィルタ)
Static静的扱い(ライトベイク・バッチング対象)
Transform位置・回転・スケール(必須)
その他コンポーネントRenderer / Collider / Rigidbody / 独自スクリプト など

代表的なGameObjectの種類

  • 3Dプリミティブ(Cube、Sphere、Capsule、Cylinder、Plane)
  • 2Dスプライト
  • Camera — 視点
  • Light — Directional / Point / Spot
  • UI(Canvas配下のButton、Text、Image等)
  • Empty GameObject — グルーピング用の空オブジェクト
  • キャラクター・地形 — アセット由来のモデル

GameObjectの作り方

  1. Hierarchyビューで右クリック
  2. または上部メニュー GameObject から目的の種類を選択
  3. 選択後、Sceneに配置されInspectorで詳細を編集

親子関係(Parent-Child)

GameObjectはツリー状に親子関係を持てます。Hierarchyで子をドラッグして親に重ねることで作成。

  • 親を動かすと子も連動(Transformの継承)
  • 子のTransformは親基準(local)と世界基準(world)の2つ
  • Empty GameObjectを使って論理グループを作るのが定石(例: --- Enemies ---

スクリプトからGameObjectを操作

// 自分自身のGameObject
GameObject self = gameObject;

// 名前で検索
GameObject player = GameObject.Find("Player");

// タグで検索
GameObject enemy = GameObject.FindGameObjectWithTag("Enemy");

// 動的に生成
GameObject obj = new GameObject("NewObject");
obj.AddComponent<Rigidbody>();

// 削除
Destroy(obj);

// 有効/無効
obj.SetActive(false);

Prefabとの関係

  • Hierarchy上のGameObjectをProjectビューにドラッグするとPrefabになる
  • Prefabを編集すると、シーンに配置された全インスタンスに変更が伝播
  • 個別オーバーライド可能(Inspectorで太字=オーバーライド済み)

関連

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. プロジェクト(Project)
  2. シーン(Scene)
  3. ヒエラルキー(Hierarchy)
  4. ゲームオブジェクト(Game Object)
  5. インスペクター(Inspector)
  6. アセット(Asset)