Выстрел ядром при движении

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

Выстрел ядром при движении

Сообщение beggar 22 фев 2013, 08:48

Добрый день!
Подскажите, пожалуйста.
При выстреле ядром (ракетой и т.д.) придав ему ускорение только вдоль ствола «transform.forward», ядро не учитывает движение ствола. Если так стрелять на бегу, то ядро летит, как будто ее выпустили из положения стоя. Это хорошо заметно при выстреле на бегу перпендикулярно направлению движения, т.е. в «бок», ядро сразу остается сзади игрока, хотя должно лететь с ним параллельно и удаляясь в бок.

var BulletInstance : Transform = Network.Instantiate(Patron, Dulo.transform.position, Quaternion.identity, 0);
BulletInstance.rigidbody.AddForce(transform.forward * BulletForce);

Я так понимаю ядру нужно придать дополнительное усилие, чтобы компенсировать движение ствола. Как это можно сделать?
beggar
UNец
 
Сообщения: 16
Зарегистрирован: 22 фев 2013, 08:14

Re: Выстрел ядром при движении

Сообщение jetyb 22 фев 2013, 09:27

Задавайте движение не через силу а начальную скорость rigidbody.velocity.
Так легко суммировать вектор выстрела ружья с вектором движения.
jetyb
Адепт
 
Сообщения: 1486
Зарегистрирован: 31 окт 2011, 17:21

Re: Выстрел ядром при движении

Сообщение pod4444 22 фев 2013, 10:26

Вы когда инстейшен делаете, почему Вы думаете, что скорость какого-то объекта передается Вашему новому объекту? Он появился и появился, какое ему дело до игрока? Присваивайте скорость игрока снаряду и делайте потом что хотите.
Последний раз редактировалось pod4444 22 фев 2013, 13:54, всего редактировалось 1 раз.
Аватара пользователя
pod4444
Старожил
 
Сообщения: 721
Зарегистрирован: 20 янв 2012, 22:02
Откуда: Воронеж
Skype: pod4444
  • Сайт

Re: Выстрел ядром при движении

Сообщение beggar 22 фев 2013, 10:40

Понял, сейчас попробую...
beggar
UNец
 
Сообщения: 16
Зарегистрирован: 22 фев 2013, 08:14

Re: Выстрел ядром при движении

Сообщение beggar 22 фев 2013, 12:50

Всем большое спасибо, работает.

Добавил лишь одну строку. Вот эту:

BulletInstance.rigidbody.velocity = transform.parent.camera.velocity;

У ствола нет rigidbody и поэтому скорость взял у камеры, который является его родителем и соответственно их скорости равны.
Хоть теперь все стало более реалистично, но попасть в цель стало практически невозможно…
Но это уже другой вопрос. Спасибо!
beggar
UNец
 
Сообщения: 16
Зарегистрирован: 22 фев 2013, 08:14


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

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

Сейчас этот форум просматривают: Google [Bot] и гости: 25