![]() |
инерция для вращения камеры
Не немножко переделываю под себя fpc, суть в том что чем дальше курсор от центра экрана, тем быстрее вращается камера, для каждой из осей.
if (Vector3.Distance(Input.mousePosition,centr)>Radiu s) { speed= ((Input.mousePosition.x/Screen.width)-0.5f)* sensitivityX; transform.Rotate(0,(speed), 0); } else { speed=0; } } Но хочу добавить для камеры инерцию, что-бы суммарный вектор поворота менялся плавно. Подскажите как это сделать? Ну например если я дернул резко мышкой то придалось ускорение, если я перевел мышь в правую зону, то еще некоторое время по инерции камера вращается влево. Я думал вычислять моментальную скорость движения курсора и прибавлять к скорости вращения какую то суммарную инерцию, умноженную на коеффиценты. if (Time.timeSinceLevelLoad-ts>dt) { speedYMoment=(Input.mousePosition.y-x1)/Time.deltaTime; SummInerc=SummInerc+speedYMoment; MomentSpeed(); } Но получается пурга. Вообщем тут больше на логику, чем на код. Но я что-то туплю. |
Ответ: инерция для вращения камеры
if (Vector3.Distance(Input.mousePosition,centr)>Radiu s)
{ speed=0.95*speed +0.05* ((Input.mousePosition.x/Screen.width)-0.5f)* sensitivityX; transform.Rotate(0,(speed), 0); } else { speed=0,95*speed; } } как то так наверно. Типа есть скорость вращения уже. И есть текущее ускорение этой угловой скорости. Когда тормозит то есть курсор не придает ускорения то на скорость вращения действует сила трения, то есть с каждым кадром скорость вращения падает на какую то величину. А если курсор придает ускорение то уменьшаем скорость вокруг старой оси вращения и прибавляем часть от скорости вокруг новой оси вращения каждый кадр. |
Ответ: инерция для вращения камеры
не совсем то, наверно я не правильно изложил свои мысли.
Надо как-то, что-бы если резко провести мышью, то камера еще по инерции крутилась в ту сторону чуть быстрее, постепенно замедляясь. |
Ответ: инерция для вращения камеры
Я бы взял скрипт Smooth Follow и повесил на камеру с нулевым оффсетом, добавил бы вспомогательный объект - цель и его бы вращал, а камера пусть следит за ним.
|
Ответ: инерция для вращения камеры
шикарно,настроил, то что нужно) спасибо)
|
Часовой пояс GMT +4, время: 04:39. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot