
「【Unity】スクリプトから位置座標を変更する」とほぼ同じだがrotation【ローテーション】ではなくeulerAngles【オイラーアングルズ】を使うことに注意。
手順は大きく以下3つ。
①仮の変数を宣言
②仮の変数の値を変更
③オブジェクトの座標に仮の変数を代入
代入という言葉がわからない場合は「代入の話」を参照。またVector3【ベクタースリー】という言葉がわからない場合は「【Unity】Vector3がざっくりわかるはなし」を参照。さらにTransform【トランスフォーム】コンポーネントについては「【Unity】位置、回転、大きさを変える」も参照しておくことを推奨。
3つのステップ
Vector3 kero = new Vector3(); //①仮の変数宣言&初期化
kero.x = 45; //②変数keroのx軸の回転を45に書き換え
gameObject.transform.eulerAngles = kero; //③回転座標に変数keroを代入
上記のサンプルは基礎的な座標変更のための3ステップ。本来スクリプトからコンポーネントの変数にアクセスするときは同じオブジェクトであってもコンポーネントの指定や取得をしておく必要があるが、Transformは基本的にどのオブジェクトにも標準搭載なので省略できる。
今の向きから変化させたいとき
Vector3 kero; //①仮の変数宣言
kero = gameObject.transform.eulerAngles; //◆現在の向きを代入
kero.x = kero.x +1; //②変数keroのx軸の向きを1増やして代入
gameObject.transform.eulerAngles = kero; //③向きに変数keroを代入
よくある落とし穴
//エラーになるパターン
gameObject.transform.eulerAngles.x = 1;
また、勘のいい方はrotationで動かせるかと思ってしまうがこれもエラー。transform.rotationはVector3ではなくQuaternion【クオータニオン】という型で保存されている。普段私達が使っているオイラー角で代入するためにはeulerAnglesを指定すればよい。