libro
www.tuyano.com
C#ではじめるUnityプログラミング入門

TransformでGameObjectを移動する (2/4)

作成:2014-08-30 12:12
更新:2014-08-30 12:18

■Transformクラスの主なメソッドについて

では、transformプロパティに組み込まれるTransformクラスについて説明しましょう。

このクラスには、ゲームオブジェクトを操作するメソッドがいろいろと用意されています。まずはその中から基本的となる「移動」と「回転」だけ覚えておきましょう。



●移動する
《Transform》.Tanslate( X値 , Y値 , Z値 );
《Transform》.Tanslate( X値 , Y値 , Z値 , 《Space》);
《Transform》.Tanslate(《Vector3》);

●回転する
《Transform》.Rotate( X値 , Y値 , Z値 );
《Transform》.Rotate( X値 , Y値 , Z値 , 《Space》);
《Transform》.Rotate(《Vector3》);

移動と回転の基本は「Translate」と「Rotate」です。これらは、いくつか書き方がありますが、一番基本となるのは「X値 , Y値 , Z値」というように、3つの値を引数に指定する書き方でしょう。これは、3次元空間のそれぞれの方向の移動量を示します。Translateなら「どれだけ動かすか(距離)」ですし、Rotateなら「どれだけ回転させるか(角度)」です。


■Spaceって何?

この3つの値を指定する書き方では、その後に第4引数として「Space」という値を指定することができます。このSpaceというのは列挙型(enum)の値です。つまり、用意されたいくつかの値の中から1つを選ぶタイプの値ですね。これは引数に指定した値が、ゲームオブジェクト自身から見た相対的な位置や向きとして扱われるか、それともワールド座標の値として扱われるかを示すものです。このSpaceには以下の値が用意されています。

Space.Self――自分自身から見た相対座標であることを示す。
Space.World――ワールド座標であることを示す。

引数を省略した場合、デフォルトではSpace.Selfが指定され、自分自身から見た相対座標の値として引数を扱います。


■Vector3って?

また、3つの値の代わりに「Vector3」という値を指定することもできます。これは、3方向のベクトルデータを扱うクラスです。この。Vector3については後で改めて説明します。


利用例を下にあげておきましょう。Updateメソッドを書き換えて動かしてみてください。Cubeが一直線に遠ざかっていきます。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

void Update () {
    this.transform.Translate(0.1f, 0.1f, 0.1f);
}

※関連コンテンツ

「C#ではじめるUnityプログラミング入門」に戻る