Я пытаюсь повернуть объект только вокруг одной оси (любой произвольный единичный вектор, не обязательно x, y или z), основываясь на компоненте вращения кватерниона вдоль той же оси указанного вращения кватерниона.
public void Rotate(Quaternion rotation, Vector3 axis, Vector3 pointToRotateAround)
{
float angle = ?
gameObject.transform.RotateAround(pointToRotateAround, axis, angle);
}
Я не знаю, как получить угол поворота моего кватерниона, который находится только вдоль указанной оси. Я мог бы сделать это, когда ось у, например:
public void Rotate(Quaternion rotation, Vector3 pointToRotateAround)
{
gameObject.transform.RotateAround(pointToRotateAround, Vector3.up, rotation.eulerAngles.y);
}
Я хочу повторить результаты выше, но для любой данной оси.
Я копался в Google, пытаясь найти ответ на этот вопрос, но я не нашел решения. Любая помощь приветствуется.