Пятница, 29 Марта 2024, 02:57

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Дочерние объекты и как с ними работать...
Дочерние объекты и как с ними работать...
ArtemSДата: Воскресенье, 02 Июля 2017, 18:16 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Здравствуйте! Может кто объяснить как грамотно передать направление на дочерний объект. Есть объект (например корабль), я к нему прикрепил объект (оружие). По идеи направление с главного объекта должно было передавать на дочерний, но у меня почему то все пули летят в мировой системе координат строго вверх. Может кто сказать, как пуле дать направление полета в сторону носа корабля ?

хуяк, хуяк и в продакшн
shizofrenДата: Воскресенье, 02 Июля 2017, 18:59 | Сообщение # 2
Starting MS-DOS...
Сейчас нет на сайте
ArtemS, дочерние объекты следуют относительно своим локальным координатам, которые задаются через localPosition, localRotation, localScale. Но, для того, чтобы "пуля летела из носа корабля" не нужно никаких дочерних объектов. Просто в момент создания пули нужно задать позицию и поворот корабля, то есть как-то так:

Код
Transform newAmmo = Instantiate(ammoPrefab);
newAmmo.position = mainShip.position;
newAmmo.rotation = mainShip.rotation;


А чтобы пуля летела вперед, нужно её двигать относительно её вращения. Для 3D это выглядит так:
Код

Vector3 newPos = transform.position + (transform.forward * moveSpeed * Time.fixedDeltaTime);


Для 2D:

Код
Vector2 newPos = (Vector2)(transform.position + (transform.up * moveSpeed * Time.fixedDeltaTime));


Если пуля не использует физику (быть такого не может, но вдруг), то нужно задавать новую позицию через transform.position. Если же пуля использует физику, то задавать полученные координаты newPos нужно через методы MovePosition, которые содержит любой Rigidbody и Rigidbody2D.

А также маленький совет: лучше всего делать коллайдеры пуль триггерами, так удобней всего определять дальнейшее действие в зависимости от объекта, с которым пуля соприкоснулась. Например, не учитывать столкновение с тем кораблем, откуда была выпущена пуля.


Моя команда
ArtemSДата: Понедельник, 03 Июля 2017, 04:00 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Цитата shizofren ()
shizofren


Спасибо большое :)


хуяк, хуяк и в продакшн
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Дочерние объекты и как с ними работать...
  • Страница 1 из 1
  • 1
Поиск:

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