[過去ログ]
【ゲームエンジン】Unityなんでも質問スレpart1 (1002レス)
【ゲームエンジン】Unityなんでも質問スレpart1 http://mevius.5ch.net/test/read.cgi/gamedev/1530167116/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
421: 名前は開発中のものです。 [] 2020/07/15(水) 14:34:23.38 ID:WYOW0SRX クォータニオンから角度を求める方法について質問したいです。 クォータニオンの各変数にはcos(θ/2)やsin(θ/2)が現れますが、transform.rotation.ToAngleAxisなどでクォータニオンからθを求める際、θ=360°+αとθ=360°-αの判別が付きませんよね? 例えば、370°回転させたとき、返り値として370(=360+10)または10が欲しいのですが、実際には350(=360-10)が返されます。 物体を360°以上回転させる場合、どうやってその角度を取得すればいいのでしょうか? よろしくお願いします。 http://mevius.5ch.net/test/read.cgi/gamedev/1530167116/421
544: 名前は開発中のものです。 [] 2020/07/20(月) 17:58:01.54 ID:hNMBd3gW >>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); } } http://mevius.5ch.net/test/read.cgi/gamedev/1530167116/544
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.027s