1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

(2)-3 カメラ回転実験 eulerAngles

Last updated at Posted at 2020-03-30

eulerAnglesを使いたい

eulerAnglesを使用する必要があったので記録します。

リファレンスを調べてみる

・オイラー角としての角度
・x,y,zの角度は、z軸にz度、x軸にx度、y軸にy度の順に回転します。
・この変数は読み込んだり、絶対値の角度を設定する時のみ使用してください。
・角度が360度を超えた時には失敗するのでインクリメントしないようにしてください。 代わりにTransform.Rotateを使用してください。

名前通りオイラーで、Vector3型で、z→x→y の順番に回転すると理解。
スクリプトリファレンス

他サイトで使い方を調べてみよう

transform.eulerAngles = new Vector3(45, 45, 0);

回転
ふむふむ。

各XYZの値変更がどうなるのかを実験

    void Update()
    {
//ボタン押しながら実験したいのでAボタンを押したら、、、
        if (Input.GetKeyDown(KeyCode.A))
        {
            transform.eulerAngles = new Vector3(45, 45, 0);
//どうなるかの確認用
            Debug.Log(this.transform.eulerAngles);
        }
    }

現在の座標は(0,10,0)で(45,45,0)になるはずなので
矢印方向に赤丸が行く予想
01.JPG
Aボタンを押すとそんな感じで回転しています。
02.JPG
Debug.Logの結果
03.JPG

最初(0,10,0)で(45,45,0)にボタン押したらワープする感じ。

ボタンを押したら、押した分だけ回転させたい

⚡もしかして1にしたらいいんじゃない?作戦
transform.eulerAngles = new Vector3(1, 0, 0);
いつまで経っても、(1, 0, 0)になるので違う(-_-;)

transform.eulerAngles  + = new Vector3(0, 0, 1);
+を入れればいける

⚡更新作戦
なんか移動の時に、Vectoe3を更新する書き方を見た気がする。。
Vector3 rightArrow = new Vector3(0.1f, 0f, 0f);
this.transform.eulerAngles(rightArrow);
eulerAnglesはメソッドみたいに使えないエラー(-_-;)

⚡万策尽きてGoogl先生に聞く
eulerAnglesは指定した座標に回転する。なるほどな-!
一瞬で角度変える時専用ってことか。
[Unity] transform.eulerAnglesについて

⚡でもVector3.forwardとかで実現出来るのかも
transform.eulerAngles += Vector3.forward;

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            transform.eulerAngles += Vector3.forward;
            Debug.Log(this.transform.eulerAngles);            
        }
    }

以外に出来て驚く。

eulerAnglesとlocalEulerAngles

eulerAnglesはワールド座標でlocalEulerAnglesは親からの角度。
Debug.LogではeulerAnglesもlocalEulerAnglesも同じ値を返していた。

eulerAnglesの方だけ公式に360度を超えた時には失敗するのでと書いていたので
どう失敗するのか見てみたくなり、360回連打するが失敗は見れなかった。残念。。
Inked06_LI.jpg

まとめ

・一瞬で角度変える時専用に使うべき
・押した分だけもVector3.forwardとかで可能だけどRotateを使う。

参考にさせて頂いたサイト

スクリプトリファレンス
Unity 回転周りについて
回転
[Unity] transform.eulerAnglesについて

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?