前提・実現したいこと
こちらのサイトを参考に、
RotateAroundメソッドに関して勉強しています。下記質問のご教示お願いします。
・質問1。
リファレンスを見ると、
public void RotateAround (Vector3 point, Vector3 axis, float angle);
と書かれていて、
回転の中心と軸と回転角は引数で指定できるみたいですが、
回転する円の半径の指定はどう設定すればよいのでしょうか?
円の半径は何で設定されていますか?
・質問2。
下記は同等かと思うのですが、
this.transform.TransformDirection (Vector3.up); this.transform.up;
参考にしているサイトは何故、長い書き方をされているか疑問に思いました。
簡潔にthis.transform.upと書いても、同等の処理になりますか?
・質問3。
参考にしているサイトで
これをカメラにAddComponentすればターゲットの方を見ながら周りを回転させることができます。
と書かれていますが、
キューブと球で実際試したところ、
キューブが常に球を向いているような回転にはなりませんでした。
回転するオブジェクトが、第1引数で指定した円の中心を見続ける
(回転しているオブジェクトのZ軸が常に第1引数の円の中心を向き続ける)には、
もう一工夫の処理が必要となりますよね?
それとも、RotateAroundメソッドだけで設定する方法ってありますか?
また、回転するオブジェクトが、第1引数の円の中心を回転しつつも、そのオブジェクト自体も自転していました。
これがどういう自転なのか(どういった規則で自転しているのか)わかりません。
この自転は何か意味がありますか?
常に中心を向き続けるという自転ではなさそうでした。
・質問4。
念の為、確認させていただきたいのですが、RotateAroundの呼び出し元の回転するオブジェクトは、
第2引数のaxisの方向には一切動かいない回転をするということで合っていますか?
試したこと
・キューブにアタッチしたスクリプト。
回転の中心を球に指定し、キューブを回転。
C#
1 void Update() 2 { 3 this.transform.RotateAround(sphere.transform.position, this.transform.up, speed * Time.deltaTime); 4 }
挙動を見てみたら、質問1に関しては、
RotateAroundの呼び出し元の回転するオブジェクトの位置座標と、第1引数の回転する円の中心の座標との距離が
回転半径になるのかと思いましたが、合っていますか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/06/01 05:03 編集
2019/06/01 07:00
退会済みユーザー
2019/06/01 07:13