座標系が、よく分からない。
ワールド座標とローカル座標の違いが理解できない。
そんな悩み、ありませんか?
実は、座標系を理解すれば、ゲーム開発の様々な場面で応用できます。
座標系は、位置を表すための基準となる座標です。
ワールド座標、ローカル座標、スクリーン座標など、それぞれに特徴があります。
それぞれの座標系を正しく理解すれば、より高度な処理ができます。
この記事では、座標系をゲームで理解する方法について、Unity実装例とともに解説します。
- 座標系とは何か、よく分からない…
- ワールド座標とローカル座標の違いが理解できない。
- 座標系を正しく理解したい。
✨ この記事でわかること
- 座標系の基本概念
- ワールド座標、ローカル座標、スクリーン座標の違い
- 各座標系の特徴と使い分け
- Unityでの座標系の扱い方
- 初心者でも理解できる座標系の考え方
Unity入門の森をチェック Unity初心者でも安心。動画解説+完成サンプル付きで実装まで進められます
座標系とは何か(ゲーム制作目線)

座標系は、位置を表すための基準となる座標です。
ゲーム開発では、様々な座標系があります。
ワールド座標、ローカル座標、スクリーン座標など、それぞれに特徴があります。
ワールド座標は、シーン全体を基準とした座標です。
ローカル座標は、親オブジェクトを基準とした座標です。
スクリーン座標は、画面を基準とした座標です。
それぞれの座標系を正しく理解すれば、適切な場面で使い分けることができますね。
Unityでは、TransformコンポーネントやCameraコンポーネントで、これらの座標系を扱えます。
ゲームでの具体的な使い道

座標系が、ゲームでどう使われているか確認してみましょう。
ワールド座標の使用場面
シーン全体での位置を管理する際に使われます。
オブジェクトの配置や、距離の計算などに使われます。
ローカル座標の使用場面
親オブジェクトを基準とした位置を管理する際に使われます。
武器や装備の配置、アニメーションなどに使われます。
スクリーン座標の使用場面
画面での位置を管理する際に使われます。
UI要素の配置や、マウス位置の取得などに使われます。
座標系の使い分け
場面に応じて、適切な座標系を使い分けます。
ワールド座標は全体管理、ローカル座標は親子関係、スクリーン座標はUIに使います。
- ワールド座標:シーン全体での位置管理
- ローカル座標:親オブジェクトを基準とした位置管理
- スクリーン座標:画面での位置管理
作り方は分かった。
でも完成まで行けない人へ
当たり判定・移動・カメラ・AIまで、
実装しながら学べる「永久会員チケット」です。
※ まずは内容を見るだけでOK
考え方・仕組みを図解イメージで説明

座標系は、「原点の定義 → 軸の方向 → 座標の計算」という流れで理解できますね。
原点の定義
各座標系には、原点(0, 0, 0)があります。
ワールド座標の原点は、シーンの原点です。
ローカル座標の原点は、親オブジェクトの位置です。
軸の方向
各座標系には、X軸、Y軸、Z軸の方向があります。
ワールド座標の軸は、シーン全体で統一されています。
ローカル座標の軸は、親オブジェクトの向きに依存します。
座標の計算
各座標系で、位置を計算します。
座標系間の変換を行うことで、異なる座標系間で位置を扱えます。
- 座標系は、位置を表すための基準となる座標
- ワールド座標、ローカル座標、スクリーン座標など、様々な座標系がある
- 場面に応じて、適切な座標系を使い分けることが重要
- UnityのTransformコンポーネントで簡単に扱える
Unityで実装する際の注意点(代表例)

Unityで座標系を扱う場合の注意点を見ていきましょう。
ワールド座標の取得
Transform.positionで、ワールド座標を取得します。
|
1 2 3 4 5 6 7 8 9 10 |
public class WorldCoordinate : MonoBehaviour { void Update() { // ワールド座標を取得 Vector3 worldPos = transform.position; Debug.Log($"ワールド座標: {worldPos}"); } } |
ローカル座標の取得
Transform.localPositionで、ローカル座標を取得します。
|
1 2 3 4 5 6 7 8 9 10 |
public class LocalCoordinate : MonoBehaviour { void Update() { // ローカル座標を取得 Vector3 localPos = transform.localPosition; Debug.Log($"ローカル座標: {localPos}"); } } |
スクリーン座標の取得
Camera.WorldToScreenPointで、スクリーン座標を取得します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public class ScreenCoordinate : MonoBehaviour { public Camera mainCamera; public Transform target; void Update() { // ワールド座標をスクリーン座標に変換 Vector3 screenPos = mainCamera.WorldToScreenPoint(target.position); Debug.Log($"スクリーン座標: {screenPos}"); } } |
座標系の変換
Transformコンポーネントの関数で、座標系を変換します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public class CoordinateConversion : MonoBehaviour { public Transform target; void Update() { // ローカル座標をワールド座標に変換 Vector3 localPos = new Vector3(1, 0, 0); Vector3 worldPos = target.TransformPoint(localPos); // ワールド座標をローカル座標に変換 Vector3 worldPos2 = new Vector3(5, 0, 0); Vector3 localPos2 = target.InverseTransformPoint(worldPos2); } } |

まとめ

この記事では、座標系をゲームで理解する方法について見てきました。
重要なポイントをおさらいします。
- 座標系は、位置を表すための基準となる座標
- ワールド座標、ローカル座標、スクリーン座標など、様々な座標系がある
- 場面に応じて、適切な座標系を使い分けることが重要
- UnityのTransformコンポーネントで簡単に扱える
- 座標系間の変換を行うことで、異なる座標系間で位置を扱える
座標系は、ゲーム開発で重要な概念です。
ワールド座標、ローカル座標、スクリーン座標を正しく理解すれば、適切な場面で使い分けることができますね。
Unityの便利な関数を使うことで、簡単に実装できます。
実際のゲーム実装とセットで学ぶことで、理解が深まるはずです。
Unity入門の森では、座標系を含むベクトルと行列を、実際のゲーム実装とともに体系的に学べます。
ぜひチェックしてみてください。
Unity入門の森をチェック Unity初心者でも安心。動画解説+完成サンプル付きで実装まで進められます





コメント