Миникарта.

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

Миникарта.

Сообщение SuKioto 05 сен 2018, 13:40

Здравтсуйте. Мне для проекта нужно реализовать миникарту. Делать через вторую камеру и рендертекстур не хочу. Поэтому решил что буду делать через формулы.
Как есть сейчас: есть рендер территории серху вниз. Т.е. обычный Image. У него в дочерних есть маркер и пустышка - ориентир.
На сцене тоже есть объект - ориентир. Пустышка. Так вот. Я получаю направление от пустышки со сцены до игрока (ориентир.позишн минус игрок.позишн) и маркер двигаю по такой формуле: маркер.позишн = ориентир карты + (направление * на размер карты).
Это я очень грубо описал как у меня есть. Но проблема в том что при изменении разрешения или размера окна маркер ведет себя неверно. занчение "размер карты" приходится менять для нужного разрешения. Пробовал "размер карты" умножать на разные значения свойств экрана. ничего не вышло.
Подскажите как делать правильно? Спасибо.

Синтаксис:
Используется csharp
        var dir = (cameraTransform.position - cameraStartPoint.position);
        dir = new Vector3(-dir.x, -dir.z, dir.y);
        dir = mapRefPoint.TransformDirection(dir);
        marker.position = (mapRefPoint.position + (dir * mapSize));

        var cameraEulers = cameraTransform.eulerAngles;
        cameraEulers = new Vector3(180f, 0f, cameraEulers.y);
        marker.localEulerAngles = cameraEulers;
SuKioto
UNIт
 
Сообщения: 86
Зарегистрирован: 21 июн 2016, 19:48

Re: Миникарта.

Сообщение KanycTa 05 сен 2018, 23:35

Аватара пользователя
KanycTa
UNIт
 
Сообщения: 107
Зарегистрирован: 25 июл 2018, 18:41
Откуда: г. Ульяновск
  • Сайт


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

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

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