Вторник, 07 Мая 2024, 20:25

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Скорость и движение (как это узнать и задать?)
Скорость и движение
MasterSergiusДата: Суббота, 09 Июня 2012, 12:21 | Сообщение # 1
был не раз
Сейчас нет на сайте
Как правильно вычислить скорость объекта, если Я его перемещаю мышью? А после отпускания, он должен с такой же скоростью двигаться дальше сам, причём из затуханием, типа по инерции, но при этом не потерять возможность отбиваться от преград. Вот, что у меня получилось, и оно получилось плохо:

Vector3 worldPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
pos_a=selfTransorm.position.x;
selfTransorm.position = new Vector3(worldPos.x,selfTransorm.position.y,selfTransorm.position.z);
pos_b=selfTransorm.position.x;
speed=Mathf.Abs(pos_b-pos_a);

это узнали скорость, но походу она будет ничтожная, ибо это же всё по одному кадру...
а здесь думал, толкнуть его в рандомном направлении и начиная с рандомного места, ну чтобы интересней было )

float fx,fy;
fx=10*speed*Mathf.Cos ((float)randangle/360*Mathf.PI);
fy=10*speed*Mathf.Sin ((float)randangle/360*Mathf.PI);
selfTransorm.position = new Vector3(randx,randy,selfTransorm.position.z);
rigidbody.AddForce(fx, fy, 0, ForceMode.Impulse);

В результате - иногда отбивается в замкнутом пространстве бесконечно, иногда после одного удара, резко замедляется... Кароче, помогите )
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Скорость и движение (как это узнать и задать?)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг