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