Движение пули в сторону куда смотрит игрок

Программирование на Юнити.

Движение пули в сторону куда смотрит игрок

Сообщение Friend123 26 фев 2012, 22:17

Добрый день! Мучаюсь с одной проблемой, подскажите направление мысли... Делаю сцену - вид сверху, т.е. движение только по осям X и Z, поворот игрока по оси Y. Нашел в инете код и прикрепил к своему проекту:
Синтаксис:
Используется javascript
public var bullet : GameObject;
public var shootTurrel : GameObject;
public var bulletSpeed : int;
private var timeShoots : float = 0;

function Update() {
        if(Input.GetKey(KeyCode.Space))
                BulletShoot();
}

function BulletShoot(){
        if(Time.time > timeShoots){
                timeShoots = Time.time + 0.5f;
                var bulletClone : GameObject;
                bulletClone = Instantiate(bullet, shootTurrel.transform.position, shootTurrel.transform.rotation) as GameObject;
                Physics.IgnoreCollision(collider, bulletClone.collider);
                bulletClone.rigidbody.velocity = Vector3.forward*bulletSpeed;
                Destroy(bulletClone, 2.0f);
        }
}
 


Игрок повернут изначально в сторону Z+. Получается, что патрон всегда летит в эту же сторону, но под разным углом поворота (в соответствии с углом поворота игрока). Я хочу сделать так, чтобы патрон летел туда, куда смотрит игрок... Подскажите плиз как сделать!
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

Re: Движение пули в сторону куда смотрит игрок

Сообщение Левш@ 27 фев 2012, 00:33

Вы можете вразумительно задавать вопросы?
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Движение пули в сторону куда смотрит игрок

Сообщение Friend123 27 фев 2012, 00:46

Левш@ писал(а):Вы можете вразумительно задавать вопросы?


Вроде понятно написал.. Суть вопроса в том, чтобы заставить лететь пулю в направлении куда смотрит игрок, игрок движется только по осям X и Z, типа псевдо 2D...У меня получается, что пуля летит только по Z прямо; игрок повернулся, пуля тоже повернулась, и в таком состоянии (повернутая) полетела опять же по оси Z прямо
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

Re: Движение пули в сторону куда смотрит игрок

Сообщение lol 27 фев 2012, 07:51

Пуля летит туда, куда смотрит объект shootTurrel. А он смотрит туда же, куда и игрок?
lol
Старожил
 
Сообщения: 508
Зарегистрирован: 15 ноя 2009, 10:48
Откуда: Москва

Re: Движение пули в сторону куда смотрит игрок

Сообщение Friend123 27 фев 2012, 08:26

lol писал(а):Пуля летит туда, куда смотрит объект shootTurrel. А он смотрит туда же, куда и игрок?

shootTurrel - это и есть игрок, по логике пуля и должна лететь куда смотрит объект, а она только поворачивается под этим углом, под которым повернут игрок, а летит по оси Z, принципиально в одном направлении. Может как-то надо делать через Vector3, предварительно его повернув на угол поворота игрока... вот не могу мысль тут уловить
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

Re: Движение пули в сторону куда смотрит игрок

Сообщение Friend123 27 фев 2012, 08:31

Вот во вложении накидал примерную картину, что происходит.
У вас нет доступа для просмотра вложений в этом сообщении.
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

Re: Движение пули в сторону куда смотрит игрок

Сообщение Vismar 27 фев 2012, 08:34

Friend123 писал(а):
lol писал(а):Пуля летит туда, куда смотрит объект shootTurrel. А он смотрит туда же, куда и игрок?

shootTurrel - это и есть игрок, по логике пуля и должна лететь куда смотрит объект, а она только поворачивается под этим углом, под которым повернут игрок, а летит по оси Z, принципиально в одном направлении. Может как-то надо делать через Vector3, предварительно его повернув на угол поворота игрока... вот не могу мысль тут уловить

При указании вектора движения rigidbody вы должна указывать вектор не статичный,как у вас,а изменяющийся.То,что сам объект может поворачиваться как угодно не говорит о том,что вектор forward у rigidbody меняется вместе с поворотом объекта.Нужно изменять сам вектор движения.
Аватара пользователя
Vismar
UNIт
 
Сообщения: 107
Зарегистрирован: 21 янв 2012, 11:20

Re: Движение пули в сторону куда смотрит игрок

Сообщение Friend123 27 фев 2012, 08:37

Vismar писал(а):При указании вектора движения rigidbody вы должна указывать вектор не статичный,как у вас,а изменяющийся.То,что сам объект может поворачиваться как угодно не говорит о том,что вектор forward у rigidbody меняется вместе с поворотом объекта.Нужно изменять сам вектор движения.
.
Это в принципе понятно, а какими функциями менять, не подскажите?
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

Re: Движение пули в сторону куда смотрит игрок

Сообщение waruiyume 27 фев 2012, 08:45

Синтаксис:
Используется javascript
bulletClone.rigidbody.velocity = shootTurrel.transform.forward*bulletSpeed;
 
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Движение пули в сторону куда смотрит игрок

Сообщение Friend123 27 фев 2012, 08:53

Благодарю, теперь всё корректно!
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

Re: Движение пули в сторону куда смотрит игрок

Сообщение waruiyume 27 фев 2012, 09:00

Не за что. Некоторые товарищи думают, что подобные ответы вредны для вопрошающих, а вы поняли, что именно изменилось?
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Движение пули в сторону куда смотрит игрок

Сообщение seaman 27 фев 2012, 14:15

Ответьте - рассейте мои сомнения.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Движение пули в сторону куда смотрит игрок

Сообщение Friend123 27 фев 2012, 17:10

waruiyume писал(а):Не за что. Некоторые товарищи думают, что подобные ответы вредны для вопрошающих, а вы поняли, что именно изменилось?

Да на самом деле ваш ответ очень прост, суть решения конечно понятна. Я просто не в той плоскости думал - как говорится искал более сложные решения, хотя простое было под носом. Но ничего, с каждой маленькой победой достигается решение поставленной цели. :)
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ


Вернуться в Скрипты

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

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