Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 31.05.2013, 01:01   #1
Alex_Witcher
Нуждающийся
 
Регистрация: 15.02.2012
Сообщений: 53
Написано одно полезное сообщение
инерция для вращения камеры

Не немножко переделываю под себя 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();

}
Но получается пурга. Вообщем тут больше на логику, чем на код. Но я что-то туплю.
__________________
unity3d, 1я поделка.
https://play.google.com/store/apps/d...GVsaWNmcmVlIl0.
(Offline)
 
Ответить с цитированием
Старый 31.05.2013, 02:48   #2
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: инерция для вращения камеры

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;
}
}

как то так наверно. Типа есть скорость вращения уже. И есть текущее ускорение этой угловой скорости. Когда тормозит то есть курсор не придает ускорения то на скорость вращения действует сила трения, то есть с каждым кадром скорость вращения падает на какую то величину. А если курсор придает ускорение то уменьшаем скорость вокруг старой оси вращения и прибавляем часть от скорости вокруг новой оси вращения каждый кадр.
(Offline)
 
Ответить с цитированием
Старый 31.05.2013, 06:26   #3
Alex_Witcher
Нуждающийся
 
Регистрация: 15.02.2012
Сообщений: 53
Написано одно полезное сообщение
Ответ: инерция для вращения камеры

не совсем то, наверно я не правильно изложил свои мысли.
Надо как-то, что-бы если резко провести мышью, то камера еще по инерции крутилась в ту сторону чуть быстрее, постепенно замедляясь.
__________________
unity3d, 1я поделка.
https://play.google.com/store/apps/d...GVsaWNmcmVlIl0.
(Offline)
 
Ответить с цитированием
Старый 31.05.2013, 14:38   #4
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: инерция для вращения камеры

Я бы взял скрипт Smooth Follow и повесил на камеру с нулевым оффсетом, добавил бы вспомогательный объект - цель и его бы вращал, а камера пусть следит за ним.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Alex_Witcher (02.06.2013)
Старый 02.06.2013, 13:59   #5
Alex_Witcher
Нуждающийся
 
Регистрация: 15.02.2012
Сообщений: 53
Написано одно полезное сообщение
Ответ: инерция для вращения камеры

шикарно,настроил, то что нужно) спасибо)
__________________
unity3d, 1я поделка.
https://play.google.com/store/apps/d...GVsaWNmcmVlIl0.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 13:17.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com