UnityのTransformクラスについての技術資料

2024年9月9日

UnityのTransformクラスは、ゲームオブジェクトの位置、回転、スケールを制御するための中心的なクラスです。すべてのゲームオブジェクトに自動的に含まれており、これを使ってシーン内のオブジェクトを操作することが可能です。この資料では、Transformクラスの基本的な使い方と、主なプロパティやメソッドについて解説します。


主なプロパティ

position

positionプロパティは、ゲームオブジェクトのワールド座標系における位置を取得または設定します。

transform.position = new Vector3(0, 1, 0);

上記のコードは、オブジェクトの位置をX軸0、Y軸1、Z軸0の座標に設定します。

localPosition

localPositionプロパティは、ゲームオブジェクトの親オブジェクトに対する相対的な位置を取得または設定します。

transform.localPosition = new Vector3(0, 1, 0);

親オブジェクトの位置を基準にして位置を設定する場合に使用します。

rotation

rotationプロパティは、ゲームオブジェクトのワールド座標系における回転をクォータニオン形式で表現します。

transform.rotation = Quaternion.Euler(0, 90, 0);

このコードは、オブジェクトをY軸を中心に90度回転させます。

localRotation

localRotationプロパティは、ゲームオブジェクトの親オブジェクトに対する相対的な回転をクォータニオン形式で取得または設定します。

transform.localRotation = Quaternion.Euler(0, 90, 0);

localScale

localScaleプロパティは、ゲームオブジェクトのスケール(大きさ)を取得または設定します。

transform.localScale = new Vector3(1, 2, 1);

オブジェクトのX軸方向に1倍、Y軸方向に2倍、Z軸方向に1倍のスケールが設定されます。

parent

parentプロパティは、ゲームオブジェクトの親オブジェクトを取得または設定します。

transform.parent = parentTransform;

これにより、別のオブジェクトを親として設定できます。


主なメソッド

Translate(Vector3)

オブジェクトを指定したベクトル方向に移動させます。

transform.Translate(Vector3.forward * Time.deltaTime);

このコードは、オブジェクトを毎フレーム前方に移動させます。

Rotate(Vector3)

指定した軸に基づいてオブジェクトを回転させます。

transform.Rotate(Vector3.up * 90);

このコードは、オブジェクトをY軸に沿って90度回転させます。

LookAt(Transform)

指定したターゲットを向くようにオブジェクトを回転させます。

transform.LookAt(targetTransform);

ターゲット(targetTransform)を常に向くように回転します。

SetParent(Transform)

指定したオブジェクトを親オブジェクトとして設定します。

transform.SetParent(parentTransform);

まとめ

Transformクラスは、Unityでゲームオブジェクトを操作するための基礎であり、位置、回転、スケールを簡単に操作できます。これを理解することで、ゲームシーンの構築やキャラクターの移動などが効率的に行えるようになります。

Unity

Posted by hidepon