[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart1 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
421(1): 名前は開発中のものです。 [] 2020/07/15(水) 14:34:23.38 ID:WYOW0SRX(1/4) AAS
クォータニオンから角度を求める方法について質問したいです。
クォータニオンの各変数にはcos(θ/2)やsin(θ/2)が現れますが、transform.rotation.ToAngleAxisなどでクォータニオンからθを求める際、θ=360°+αとθ=360°-αの判別が付きませんよね?
例えば、370°回転させたとき、返り値として370(=360+10)または10が欲しいのですが、実際には350(=360-10)が返されます。
物体を360°以上回転させる場合、どうやってその角度を取得すればいいのでしょうか?
よろしくお願いします。
544(2): 名前は開発中のものです。 [] 2020/07/20(月) 17:58:01.54 ID:hNMBd3gW(2/3) AAS
>>421 です。解決しましたので報告します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BoxMove : MonoBehaviour
{
//ハンドルの GameObject を指定させる
public GameObject Handle;
//ハンドルの角度と回転軸
private float HandleAngle;
private Vector3 HandleAxis;
void Update()
{
//ハンドルの角度と回転軸を取得
Handle.transform.localRotation.ToAngleAxis(out HandleAngle, out HandleAxis);
//偶数周目では回転軸の向きが反転するので、それを検知して角度を修正する
if(HandleAxis.x < 0)
{
HandleAngle = 360 - HandleAngle;
}
//ハンドルの角度に応じて箱を移動させる
this.transform.localPosition = new Vector3(0, 0, HandleAngle);
}
}
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.461s*