学習記事一覧 · Unity基礎

【学習】GameObject と Transform(オブジェクトの配置と操作)

これまでの学習では、

  • Unity エディタの画面構成を学んだ
  • Scene、Hierarchy、Inspector の役割を理解した

という形でエディタの使い方を押さえてきました。

しかし、ゲームの世界を構成する「オブジェクト」がどのように作られ、配置されるかを学んでいません。

GameObject と Transform

という Unity の基本概念を押さえましょう。

今回は GameObject の作成と Transform コンポーネントを使った配置・操作を学びます。

今日学ぶこと

  • GameObject … シーン内のオブジェクト。ゲームの構成要素
  • Transform … 位置(Position)、回転(Rotation)、拡大縮小(Scale)
  • 親子関係 … オブジェクトの階層と相対座標

GameObject とは

GameObject は、Unity のシーンに配置されるオブジェクトです。

  • 空のオブジェクト、Sprite、UI、カメラなど、すべて GameObject
  • コンポーネントを追加することで役割が決まる
  • Hierarchy に表示され、Scene ビューで編集できる

GameObject を作成する

Hierarchy で右クリックし、メニューから作成できます。

メニュー 作成されるもの
Create Empty 空の GameObject
2D Object → Sprite 画像を表示するオブジェクト
2D Object → Tilemap タイルマップ(背景など)
UI → Button UI ボタン
Camera カメラ

例:2D Object → Sprite を選ぶと、白い四角(デフォルトの Sprite)がシーンに追加されます。


ちなみに:コードからも GameObject を作れる

エディタのメニューで作ったオブジェクトも、C# から new で新しく作ることもできます(WinForms で new Button() としたのと同じく、型のインスタンスを作るイメージです)。

var obj = new GameObject("MyObject");

Unity のシーンは、このような GameObject の集まり でできています。いまは Hierarchy で置いて Transform を触る ことに慣れるのが先で、コードでの生成の詳細は、スクリプトやプレハブの回で扱います。


Transform とは

Transform は、すべての GameObject が持つコンポーネントです。位置・向き・大きさを制御します。

プロパティ 説明 2D での主な用途
Position オブジェクトの位置(X, Y, Z) X, Y で平面上の位置を指定
Rotation 回転角度 向きを変える
Scale 拡大縮小 大きさを変える

2D ゲームでは、Z 軸は奥行きなので、多くの場合 Position の Z は 0 のままにします。


Position で配置する

Inspector の Transform で Position を変更すると、オブジェクトの位置が変わります。

意味
X = 0 中央
X > 0 右方向
X < 0 左方向
Y = 0 中央
Y > 0 上方向
Y < 0 下方向

例:Position を (3, 2, 0) にすると、中央から右に 3、上に 2 の位置に配置されます。


Scale で大きさを変える

Scale を変更すると、オブジェクトの表示サイズが変わります。

意味
(1, 1, 1) 等倍(デフォルト)
(2, 2, 1) 横・縦 2 倍
(0.5, 0.5, 1) 半分の大きさ

2D では Scale の Z は 1 のままにすることが多いです。


親子関係

GameObject を別の GameObject の上にドラッグすると、 として配置されます。

  • 親を動かすと、子も一緒に動く
  • 子の Position は、親からの相対位置になる
  • キャラクターの「体」と「腕」のように、まとめて動かしたいときに使う

操作の流れ

Hierarchy で右クリック

2D Object → Sprite などで GameObject を作成

Scene ビューでドラッグして位置を調整

Inspector の Transform で Position / Scale を数値入力

重要ポイント

GameObject はシーン内のオブジェクト、Transform はその位置・向き・大きさを決めるコンポーネントです。

  • GameObject = ゲームの構成要素。コンポーネントで役割が決まる(必要ならコードからも new GameObject(...) で作れる)
  • Transform = Position(位置)、Rotation(回転)、Scale(拡大縮小)
  • 2D では Position の X, Y と Scale を主に使う
  • 親子関係でオブジェクトをまとめて動かせる

発展アイデア

GameObject と Transform が分かったら、次のステップです。

  • Unity におけるオブジェクトの考え方 … シーン、GameObject、コンポーネントの整理
  • C# スクリプトの作成とアタッチ … スクリプトで動きを制御する
  • 変数と Inspector での編集 … スクリプトから Transform を操作する

GameObject と Transform は Unity の基本中の基本 です。まずは用語の地図を押さえてから、スクリプトで動きを付けましょう。