👨🌾
Quaternionの順序
概要
Quaternionの順序をまとめます。
Unity環境です。
X軸(赤)回転
IEnumerator test3()
{
int i = 0;
while (true)
{
var rot1 = Quaternion.AngleAxis(1, new Vector3(1, 0, 0));
//元々の回転軸で回転させたい 場合、かけたい回転(rot1)をみぎ
m_target.transform.localRotation = m_target.transform.localRotation *rot1;
// 固定の回転軸で回転させたい
m_target2.transform.localRotation =rot1 * m_target2.transform.localRotation ;
if (i >= 360) break;
i += 1;
yield return new WaitForSeconds(0.01f);
}
}
m_target2.transform.localRotation =rot1*m_target2.transform.localRotation ; の場合、UnityEditorでrot_xのみが変化します。
Y軸回転(緑)
UnityのHierarchyはAxisを選択している。x、y、zが変化している。
IEnumerator test4()
{
int i = 0;
while (true)
{
//var rot1 = Quaternion.AngleAxis(1, new Vector3(1, 0, 0));
var rot2 = Quaternion.AngleAxis(1, new Vector3(0, 1, 0));
//元々の回転軸で回転させたい 場合、かけたい回転(rot1)をみぎ
m_target.transform.localRotation = m_target.transform.localRotation * rot2;
// 固定の回転軸で回転させたい
m_target2.transform.localRotation = rot2 * m_target2.transform.localRotation;
if (i >= 360*2) break;
i += 1;
yield return new WaitForSeconds(0.01f);
}
}
参考)
動画からアニメGIF
Discussion