【3Dゲームエンジン】Unity質問スレッド31at GAMEDEV
【3Dゲームエンジン】Unity質問スレッド31 - 暇つぶし2ch680:名前は開発中のものです。
17/10/08 13:02:56.37 fTBqzW3p.net
>>658
こんな感じか?
public class RotationFollower : MonoBehaviour {
public Transform target;
private Quaternion prev;
void Start () {
if (target != null) {
prev = target.rotation;
}
}
void Update () {
if (target != null) {
var rot = target.rotation * Quaternion.Inverse (prev);
transform.rotation = rot*transform.rotation;
prev = target.rotation;
}
}
}
重要なのはQuaternionの掛け算は、前後関係入れ替えると回転の適用順が逆になり、結果が違うということ。
まずワールド座標系でAの回転量だけ回す、次に回転後の座標系でBの回転を適用する必要がある。
transform.rotation = rot*transform.rotation;
↑この行を
transform.rotation *= rot;
に変えて挙動を比較してみると結果の違いが観測できるだろう。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch