BLOG ブログ

ENTRY

お申し込みはこちら

【Unity】スクリプトから位置座標を変更する

 要するにオブジェクトの移動。手順は大きく以下3つ。
①仮の変数を宣言
②仮の変数の値を変更
③オブジェクトの座標に仮の変数を代入

 代入という言葉がわからない場合は「代入の話」を参照。またVector3【ベクタースリー】という言葉がわからない場合は「【Unity】Vector3がざっくりわかるはなし」を参照。さらにTransform【トランスフォーム】コンポーネントについては「【Unity】位置、回転、大きさを変える」も参照しておくことを推奨。

3つのステップ

Vector3 kero;  //①仮の変数宣言
kero.x = 1; //②変数keroのx座標を1に書き換え
gameObject.transform.position = kero; //③位置座標に変数keroを代入

 上記のサンプルは基礎的な座標変更のための3ステップ。本来スクリプトからコンポーネントの変数にアクセスするときは同じオブジェクトであってもコンポーネントの指定や取得をしておく必要があるが、Transformは基本的にどのオブジェクトにも標準搭載なので省略できる。

今いる座標から変化させたいとき

 少しずつ座標を動かしたい場合は毎フレーム現在の座標を代入して変更を加えればよい。x座標に1ずつ移動するサンプルは下記のようになる。
Vector3 kero;  //①仮の変数宣言
kero = gameObject.transform.position; //◆現在の座標を代入
kero.x = kero.x +1; //②変数keroのx座標を1増やして代入
gameObject.transform.position = kero; //③位置座標に変数keroを代入

よくある落とし穴

 よくある落とし穴のポイントとして以下のように直接position【ポジション】の座標を変更したくなるが、これはできない仕様。Vector3で代入できるので仮のVector3型変数を作っている。
//エラーになるパターン
gameObject.transform.position.x = 1;

CONTACT お問い合わせ

無料体験授業は随時開催しています。
ご希望やご質問など、お気軽にお寄せください。