Я использую Quaternion.Lerp
для поворота сустава под определенным углом, но когда я использую нижеследующий код, я считаю, что шарнир вращается очень далеко, хотя я указал его на поворот только с 5. Любой мысли, пожалуйста?Quaternion.Lerp не работает должным образом в Unity3d
newRot.y += currentTransform.localRotation.y + 5f;
blendWeight = 0;
if (blendWeight < 1)
{
animationRotation = currentTransform.transform.localRotation;
newRotation = Quaternion.Euler(newRot.x, newRot.y, newRot.z);
blendWeight += Time.deltaTime/0.9f;
currentTransform.transform.localRotation = Quaternion.Lerp (animationRotation,newRotation, blendWeight);
}
где newRot является Vector3
Правильно ли этот код? Первая строка не выглядит так, как будто она должна компилироваться, и не может быть вызван ерп. Можете ли вы изменить свой пример на то, что работает и демонстрирует проблему, с которой вы сталкиваетесь? – Sam
@ Да, код правильный, это всего лишь снимок только этой части, конечно код намного больше. Но да, это так, без ошибок компиляции. – Tak
К сожалению, я неправильно прочитал тест «если», чтобы запустить lerp. Но первая строка кажется странной: 'Transform newRot.y + = currentTransform.localRotation.y + 5f;' вы уверены, что это компилируется без ошибок? Это должно быть синтаксическая ошибка. Используете ли вы C# или JavaScript (UnityScript)? – Sam