【学習】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 が分かったら、次のステップです。
- C# スクリプトの作成とアタッチ … スクリプトで動きを制御する
- 変数と Inspector での編集 … スクリプトから Transform を操作する
GameObject と Transform は Unity の基本中の基本 です。次はスクリプトで動きを付けましょう。


ディスカッション
コメント一覧
まだ、コメントがありません