в чем именно твоя проблема?Вы только сказали, что это «не работает» - но что именно происходит?
Вы пробовали это:
transform.rotation = Quaternion.Lerp(rotCur, Quaternion.Euler(30,-180,0), Time.deltaTime * 5);
первый и второй параметры поменялись местами
iПредположим, что rotCur означает «текущее вращение», а в Quaternion.Lerp первый параметр - «от», второй - «на»
РЕДАКТИРОВАТЬ: вы пробовали это:
transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(30,-180,0), Time.deltaTime * 5);
РЕДАКТИРОВАТЬ2: я знаю, в чем ваша проблема!
вы используете Time.deltaTime вместо Time.time (или любого другого таймера)
deltaTime никогда не равно 0 или 1 - оно всегда одинаково, 0,2 например
lerp интерполирует между 0 и 1, и вам нужно увеличить параметр с 0 до 1, чтобы он работал
попробуйте это:
в начале,только один раз:
float interpolationProgress = 0.0f;
bool interpolating = true;
, затем каждый кадр:
if(interpolating) {
interpolationProgress += 0.1f * Time.deltaTime;
transform.rotation = Quaternion.Lerp(from, to, interpolationProgress);
if(interpolationProgress >= 1.0f) {
interpolating = false;
}
}