こんにちは。
今回は、Unityでtransform.Rotateとtransform.rotationを使用した際、
厳密にどのような違いがあるのかよくごっちゃになってしまうので
備忘録を兼ねて記載。
まず、transformというのはどのような場合に使うのかというと、
主にオブジェクトを動かす時に使用します。
例:transform.Rotate(new Vector3(0, 10, 0));
//y軸を10°回転させる。
positionを変更したりRotateを変更するとオブジェクトを操作できるのですが、
その中のRotateとrotationについて触れていきます。
一見どちらも同じように見えるのですが、実は間違って使ってしまうと
大変な事になってしまいます。
ざっくり言うとRotateはオブジェクトを回転させ、rotationもオブジェクトを回転させます。
同じじゃん...。
と思ってしまいがちですが、実際に使ってみるとよくわかります。
Update内でRotateを1にすると1ずつ回転し続けます。
rotationでおかしな動きになったかと思います。
それはなぜなのか。コードが間違えているのではないか。
それ以前の問題です。
rotationを使った際に注意しなければならない事があります。
それは、rotationの場合 1°~360°という割り当てはできず、
0 ~ 1の範囲で値を割り当てなければいけない。
らしいです。
間違えて30という風に割り当てても、正しい動作はできません。
このように、Rotateは1~360という値なのに対して
rotationは0~1で180°までの値を設定します。
※備忘録ではあるのですが、正直詳しい事はあまりよくわかっていません...。
ですので私の場合回転処理を行う時は基本的にRotateを使うようにしています。
もしくは、オイラー角で値を設定するeulerAnglesを使いましょう。
(eulerAnglesに関してはまた次回お話しします。)
私は、「ボタンを押し続けている間は回転する」と言った処理にはRotate
「ボタンを押した時に回転する」といった処理にはeulerAnglesと
使い分けをしています。
みなさんも自分が思った通りの動きに合わせて処理を使い分けてみては
いかがでしょうか。
ではまた。
開発者のアプリを見る
関連するブログを探す
>SteepStep攻略動画作りました。
>SteepStep攻略動画作りました。
>「Macが熱い」 iMacが熱暴走するのを防ぐ
>[SocialConnector]自作アプリでTwitterなどのSNSを使う
>アプリの掲載情報おすすめの書き方
>[Unity] キャラクター選択をするスクリプト
>Androidにapkを転送する際の Invalid ~ やNo Such file directory
>xcodeでArchive時にビルドエラー ~armv7 ~arm64
>Androidアプリのアップデート
>bloggerにnend広告を導入する方法
>nend広告が表示されない時に見落としがちなこと
>bloggerで記事の中に動画を埋め込む方法。
[トロイの木馬] Macでウイルスチェックを行う
>[SocialConnector]自作アプリでTwitterなどのSNSを使う
>アプリの掲載情報おすすめの書き方
>[Unity] キャラクター選択をするスクリプト
>Androidにapkを転送する際の Invalid ~ やNo Such file directory
>xcodeでArchive時にビルドエラー ~armv7 ~arm64
>Androidアプリのアップデート
>bloggerにnend広告を導入する方法
>nend広告が表示されない時に見落としがちなこと
>bloggerで記事の中に動画を埋め込む方法。
[トロイの木馬] Macでウイルスチェックを行う