Страница 1 из 1

UI привязка к точке на масштабируемом Image? [решено]

СообщениеДобавлено: 18 май 2019, 23:54
Woolf
Привет, камрады. Вот есть у меня такая карта, она масштабируется в зависимости от разрешения экрана
На карте есть точки-базы, привязанные к конкретным географическим местам.
https://clip2net.com/s/41CrNBk

Проблема в том, что при масштабировании карты эти точки съезжают со своих мест. Так, например, Франция оказывается на территории Германии, а Казахстан уезжает в Россию.
Как мне жестко закрепить эти точки базы, чтобы при любом масштабировании карты они оказывались там, куда я их поставил?

Изображение

Re: UI привязка к точке на масштабируемом Image?

СообщениеДобавлено: 19 май 2019, 00:02
1max1
Масштабирование через transform.scale? Твои точки дочерние к карте или плавают где-то?

Re: UI привязка к точке на масштабируемом Image?

СообщениеДобавлено: 19 май 2019, 00:07
Woolf
1max1 писал(а):Масштабирование через transform.scale? Твои точки дочерние к карте или плавают где-то?


Масштабирование через свойство RecTransform
Изображение

Точки - это кнопки, они дочерние к карте.
Изображение

Re: UI привязка к точке на масштабируемом Image?

СообщениеДобавлено: 19 май 2019, 01:08
1max1
Могу только костыль предложить:
Но проще скейлить через localScale, а лучше вообще не скейлить, так и картинка не размазанная будет))



Синтаксис:
Используется csharp
using UnityEngine;
using UnityEngine.UI;

class Pointer : MonoBehaviour
{
    [SerializeField] Image map;

    Vector3 startPosition;

    void Start()
    {
        startPosition = transform.localPosition;
    }

    void Update()
    {
        Vector3 p = Vector3.zero;
        p.x = startPosition.x * (map.rectTransform.rect.width / map.mainTexture.width);
        p.y = startPosition.y * (map.rectTransform.rect.height / map.mainTexture.height);
        transform.localPosition = p;
    }
}

Re: UI привязка к точке на масштабируемом Image?

СообщениеДобавлено: 19 май 2019, 10:41
~AvA~
UI конечно штука сложная..
На Canvas есть Content Scaler (добавь если нету). Там с ним можно пошаманить, поставить разрешение на которое нацелен и как скэйлить (Scale with screen size) , если на девайсе другое.

Re: UI привязка к точке на масштабируемом Image?

СообщениеДобавлено: 19 май 2019, 21:02
AngryCat

Re: UI привязка к точке на масштабируемом Image?

СообщениеДобавлено: 20 май 2019, 01:02
Woolf
AngryCat писал(а):То, что надо..

Нет, даже и близко не то..

Ладно, я уже смирился, что нативными средствами мне результата не достичь, буду скейлить своим скриптом с привязкой по долям от целого

Re: UI привязка к точке на масштабируемом Image?

СообщениеДобавлено: 21 май 2019, 13:16
AngryCat
Woolf писал(а):
AngryCat писал(а):То, что надо..

Нет, даже и близко не то..

Хмм... Видимо я не понял задачу... Что именно не то?

Re: UI привязка к точке на масштабируемом Image?

СообщениеДобавлено: 21 май 2019, 13:45
1max1
Что именно не то?

Посмотри мой видос сразу понятно станет, у него маркеры съезжают при скейле.

Re: UI привязка к точке на масштабируемом Image?

СообщениеДобавлено: 21 май 2019, 13:56
AngryCat
1max1 писал(а):
Что именно не то?

Посмотри мой видос сразу понятно станет, у него маркеры съезжают при скейле.

Допер. Я думал, у него съезжают маркеры на разных разрешениях )

Re: UI привязка к точке на масштабируемом Image?

СообщениеДобавлено: 21 май 2019, 17:03
~AvA~
Ха, я нашёл решение нативными средствами :)


Вот эти белые херности (маркеры), установи их вокруг твои кнопок , как здесь
Изображение

Re: UI привязка к точке на масштабируемом Image?

СообщениеДобавлено: 21 май 2019, 17:14
1max1
Кросовчик!

Re: UI привязка к точке на масштабируемом Image?

СообщениеДобавлено: 21 май 2019, 19:02
AngryCat
~AvA~ писал(а):Вот эти белые херности (маркеры)

Браво Маэстро :ymapplause:

Re: UI привязка к точке на масштабируемом Image?

СообщениеДобавлено: 22 май 2019, 03:15
Woolf
Вот эти белые херности (маркеры), установи их вокруг твои кнопок , как здесь

Ай-нэ-нэ, действительно.. Это ж надо было как-то додуматься, я на эти херности и внимания никогдане обращал.. Большое спасибо, я еще точки поместил в панельки с привязкой по центру, чтобы они размер не меняли, теперь при любом разрешении они стоят там, где надо, Рейн на Рейне, Сырдарья на Сырдарье.

Сию тему надо бы закрепить, в инете такого решения нет.