@NIKROTOS
Начинающий программист.

Как заставить дочерний объект, перестать следовать за родителем?

Пытаюсь реализовать систему прицеливания, как в старом добром alien shooter.
Для удобства сделал прицел дочерним для игрока(так как углы в этом случае считаются относительно положения игрока).
Закономерно появилась проблема: при повороте игрока, поворачивается и прицел, в связи с чем он начинает бесконечно крутиться(
Решить эту проблему на мой взгляд можно тремя способами:
1)Получить локальные координаты прицела, относительно игрока, при этом прицел не должен быть дочерним.
2)закрепить прицел в глобальных координатах(крайний случай)
3) аналог функции Vector3.Angle( , ) с задаваемой точкой отсчёта.
Код показать не могу, так как скрипт только в теории.
Хотелось бы узнать про первый и третий
  • Вопрос задан
  • 706 просмотров
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Unity
4) сделать иерархию вида {игрок}->{прицел, моделька}, и вращать МОДЕЛЬКУ. А игрока только перемещать.

А вообще зачем вам прицел в иерархию игрока помещать? Это вроде не связанные вещи - прицел экранный, игрок - мировой.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
MrMureno
@MrMureno Куратор тега Unity
VR for all
крутиться он не правильно из за пары вероятных причин.
- неверная иерархия
- неверный код
- еще что-то неправильно

Ответ точный показать не могу, так как он тоже только в теории.

(как то же вы увидели что он крутится, код и скриншоты иерархии к вопросу добавляйте. за телепатами это на битву экстрасенсов)
Ответ написан
@stictt
просто рак
Я бы сделал модель игрока, и прицел дочерними к контроллеру на котором закреплена камера, ну грубо говоря летающая штука с верху. ни каких проблем не будет тогда с иерархией и всем остальным. Так же это освобождает от кучи проблем в будущем, а если вы захотите заменить игрока ? и тд
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы