Плавная остановка объекта при перемещении [РЕШЕНО]

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Плавная остановка объекта при перемещении [РЕШЕНО]

Сообщение Receptor 29 ноя 2011, 07:45

В общем, нужно сделать, что бы при отпускании кнопки объект остонавливался никак вкопанный, а плавно, постепенно. Как бы скользил. Как это проще сделать? Желательно на Яве. Спасибо.

П.С. Пытался понять как в стандартных скриптах (3d person controller), но так и не врубился.
Последний раз редактировалось Receptor 29 ноя 2011, 16:42, всего редактировалось 1 раз.
_VK.com
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск

Re: Плавная остановка объекта при перемещении

Сообщение Order 29 ноя 2011, 08:04

Перевести объект на физику проще всего, или открыть учебник физики, почитать про скорость и ускорение, трение и тп и сделать формулу движения в скрипте.
Добавить rusorder в Skype , _juc4you@mail.ru ;
Платные консультации, программирование ваших проектов Unity3d,C#,IOS,Android.
Скрытый текст:
_ttp://www.youtube.com/watch?v=1m2qTnatSjM&list=UUjcKNvONEUHCILG7QrX1NFg
Order
Старожил
 
Сообщения: 805
Зарегистрирован: 21 фев 2010, 10:34

Re: Плавная остановка объекта при перемещении

Сообщение Левш@ 29 ноя 2011, 12:00

Для этого не обяз. использовать физику, зависит от целей.
Иногда можно так:
Синтаксис:
Используется javascript
if (!Input.GetKey (w) && speed > 0)
    speed -= 0.01;
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Плавная остановка объекта при перемещении

Сообщение Receptor 29 ноя 2011, 14:25

Левша, наверное это оно самое. Не могу проверить, ругается, мол пофиксить скрипт надо. Я просто добавил твою строчку в свой код. Где speed назначил значением координат передвижения объекта по оси Z. Или я что-то нитак понял? Мне нужно, что бы была переменная, которая, грубо говоря, при действии каком-либо набирала значение от 0 до 10 например, при этом набирала в геометрической прогресси (или как это правильно), с уксорением в общем. И при завершении действие обратно от 10 до 0 возвращалась. Как-то так =) Хотя я может не правильно понимаю, что мне нужно


Запускается, но не работает:

Синтаксис:
Используется javascript
var moving : Transform;
var speed = 1;
function Update () {
if (!Input.GetKey ("w") && speed > 0)
{
speed -= 0.1;
moving.Translate (0, 0, speed);
}
}


Что не так делаю?
_VK.com
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск

Re: Плавная остановка объекта при перемещении

Сообщение Receptor 29 ноя 2011, 15:52

Получилось. А именно плавный старт объекта =)

А что нужно нужно добавить, что бы при прикращении действия переменная speed опустилась до 0?

вот, что у меня пока что получилось

Синтаксис:
Используется javascript
var moving : Transform;
var speed : float;
var maxspeed : float = 1;

function Update () {

moving.Translate (0, 0, speed);

if (Input.GetKey ("w"))
speed -= -0.01;
else
speed = 0;
}


переменную maxspeed подразумевал как максимальная скорость, но как ее применить грамотно, еще не смог понять. Буду рад любой помощи
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск

Re: Плавная остановка объекта при перемещении

Сообщение Левш@ 29 ноя 2011, 16:22

Синтаксис:
Используется javascript
var moving : Transform;
var speed = 0.0;
var maxspeed = 10.0;

function Update () {
  if (Input.GetKey ("w") && speed < maxspeed)
    speed += 0.01;
  if (!Input.GetKey ("w") && speed > 0) {
    speed -= 0.01;
  if (speed < 0)  // чтоб обратно не поехал.
    speed = 0;
  }
moving.Translate (0, 0, speed);
}
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Плавная остановка объекта при перемещении

Сообщение Receptor 29 ноя 2011, 16:41

Левш@, спасибо тебе огромное! Сам допёр сначала, что нужно в if добавить && speed < maxspeed, но как остановку сделать не догнал =)
И еще, все же у var speed приписать float, а то без этого определения при старте игры объект делает "рывок" =) Спасибо еще раз! То, что хотел узнать, и понять, самое главное
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20