Для полного решения, вы должны сначала определить местоположение цели относительно корабля, а затем воссоздать ее в контексте всплеска и радара.
В качестве быстрого исправления вы можете попробовать изменить свою последнюю строку следующим образом:
this.transform.localPosition = this.parent.localRotation * this.transform.InverseTransformDirection(vDelta);
или (очевидно, не очень хорошо, как вы упомянули)
this.transform.localPosition = Quaternion.Inverse(this.parent.localRotation) * this.transform.InverseTransformDirection(vDelta);
один изэто обязательно для работы.(Первый сделал)
Редактировать: вот третий вариант
this.transform.localPosition = this.transform.parent.parent.InverseTransformDirection(vDelta);
Этот получает позицию в пространстве Игрока и применяет ее в пространстве радара.
Первый и третий пытаются сделать то же самое. Поскольку вы преобразовывали направление в координатную рамку блипа, любые повороты, которые имеют его родители, отменяются .Вместо этого, правильное решение - сначала получить позицию относительно игрока.Тогда примените это к вспышке в радаре.Третья строка кода, которую я здесь имею, пытается это сделать.