【3Dゲームエンジン】Unity質問スレッド32 at GAMEDEV【3Dゲームエンジン】Unity質問スレッド32 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト1026:名前は開発中のものです。 17/12/20 01:00:49.24 TUVA4DF6.net Quaternion.FromToRotation(A, B)では、 回転方向を含めた回転状態を得られますが、 Vector3.Angle(A, B)では、 1027:ベクトル間の角度しかわからず、向きがわかりません。 また、取得される角度は180度以下に限定されるため、 左向きに270度は、右向きに90度かもしれないということです。 回転方向は、Vector3.Cross(A, B)のZ成分が正か負かで判定します。 2Dでは、Mathf.Sign((Vector3.Cross(A, B)).z)でも良いのですが、 3Dでは、回転面がXY平面上とは限らないため、外積ベクトルと 正の向きにしたい軸との内積をとってから符号判定した方が確実です。 Atan2関数は、戻り値がradのため、度に直す必要があります。 また、相対回転であるRotateを使用する場合は、 求めた偏角から、現在の向きの回転角を引いておく必要があります。 rotationはQuaternionのため、eulerAnglesでオイラー角に戻しておき、 Z軸回転成分だけを取り出して減算します。 1028:名前は開発中のものです。 17/12/20 08:42:36.26 XTZUI7pU.net 969です >>977-980 詳しく解説ありがとうございました! やっぱり、角度から行こうとすると結構面倒ですね~ 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch