Transform はゲームオブジェクトの位置・回転・スケール(拡大・縮小)と親子関係を保持するので非常に重要です。ゲームオブジェクトは常時 Transform コンポーネントにアタッチしているため、Transform コンポーネントをはずす事はできません、そして1つのゲームオブジェクトに対して1つしか存在できません。
Transform は 3 次元空間であれば X ・ Y ・ Z 軸、2 次元空間であれば X ・ Y 軸を Unity 上で操作できます。これらの軸は赤は X、緑は Y、青は Z、でそれぞれ表現されています。( Scene ウィンドウを表示して確認するとわかりやすいです)
Transform はシーンビュー上で編集したり、Inspector 上でプロパティの値を変更することよって編集できます。シーンでは Move (移動)、Rotation (回転)、Scale (スケール) 等のツールを使用して Transform を変更することもできます。これらのツールは Unity エディターの左上に配置されています。
ツールはシーン内のすべてのオブジェクトで使用することができます。オブジェクトをクリックすると、ギズモが表示されます。ギズモの形は、選択したツールによります。
表示されているギズモの 3 軸のうち 1 つをクリックアンドドラッグすると、選択した軸が黄色になります。マウスをドラッグすると、選択した軸に沿ってオブジェクトが移動、回転、伸縮します。マウスボタンを離しても、軸は選択されたままです。
追加のオプションとして特定の平面への移動をロックするモードもあります。(一つの軸を固定しながら、残りの二つの軸をドラッグする)移動ギズモの中央付近にある三つの小さい色付き四角形をクリックしたときにロックされその平面で移動します。(例えば、Z 軸のロックは青い四角形をクリック)
親子関係は unity 上で最も重要なコンセプトの 1 つです。ゲームオブジェクトが他のゲームオブジェクトの 親 であるとき 子 のゲームオブジェクトは親のゲームオブジェクトを基準として移動・回転・拡大縮小されます。親子関係はあなたの腕や体の関係のように考える事ができます、つまり体が動けば腕が移動すると言う事です。子オブジェクトもまた自分の子を持つことができます。それは手を腕の“子供”とし、手は複数の指を“子供”として持っているとみなすことができます。あらゆるゲームオブジェクトは複数の子オブジェクトを持つ事ができますが、親は 1 つのみです。親子関係にあるこれら複数の階層は、Transform の ヒエラルキー によって形成されています。ヒエラルキー上で最も上位にあるオブジェクトは ルート と呼ばれます。
Hierarchy ウィンドウ で任意のゲームオブジェクトを他のゲームオブジェクト上にドラッグすると親を作成できます。この操作によって 2 つのゲームオブジェクトを親子関係にできます。
インスペクター上に表示されているいろいろな子オブジェクトの Transform の値は親の Transform の値を基準として表示されていることに注意しなければいけません。これらの値は ローカル座標 と呼ばれています。体と腕の関係で例えるならば、歩くときに体の位置が移動してもあなたの腕が基準とする位置は同じであるということです。シーンの構成上、通常は、子オブジェクトに関してはローカル座標での作業で十分です。ただし、ゲームプレイでは、しばしばワールド空間や グローバル座標 で正確な位置を確認することが役立つこともあります。Transform コンポーネントのために API をスクリプトすると、ローカルとグローバルの位置、回転とスケールに別々のプロパティが設定され、また、どんな位置でもローカルとグローバル座標間で転換できます。
不均等なスケーリングとは Transform 内の Scale が例えば xyz=(2, 4, 2) のような異なる値の事を言います。対照的に、均等なスケーリングとは xyz=(3, 3, 3) のような同じ値の事を言います。不均等なスケーリングは特定の場合に役立ちますが、均等なスケーリングでは発生しないいくつかの奇妙なことが発生します。
Transform のスケールはあなたのモデリングアプリケーションでのメッシュの大きさとユニティでそのメッシュの大きさとの違いを決定します。ユニティ上でのメッシュサイズは( Transform のスケール)は、特に物理シミュレーションにとって大変重要です。デフォルトでは、物理エンジンはワールド空間上で 1 単位を 1 メートルに対応することを前提としています。オブジェクトが非常に大きい場合、それは「スローモーション」で落ちるように見えます。シミュレーションでは実際に正しいです、非常に大きなオブジェクトが遠方で落ちいてるように見えます。
オブジェクトのスケールに影響を与える 3 つの要因があります。
理想的には、Transform コンポーネントのオブジェクトの Scale を調整してはいけません。最良のオプションは、現実のスケールでモデルを作成して Transform のスケールを変更しない事です。次の最良のオプションは、個々のメッシュをインポートする際のスケールを Import Settings で調整することです。特定の最適化はインポートサイズに基づいて発生し、スケールを調整したオブジェクトのインスタンス化はパフォーマンスを低下させます。詳細については、Rigidbodyコンポーネントのリファレンスページのスケールの最適化に関するセクションを参照してください。