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

RectTransform pivot

СообщениеДобавлено: 30 июл 2019, 16:15
DanilaDIV
Добрый день. Не могу справиться с задачей, может кто сталкивался. Есть RawImage, у него меняется scale, как переместить его пивот в точку клика мыши?
Знаю какие координаты должны быть у пивота (от 0 до 1) с помощью скрипта:
Синтаксис:
Используется csharp
    public void UI_click()
    {
        print("Click---------------------");
        RectTransform r = RiImg.gameObject.GetComponent<RectTransform>();
        print("pos do " + r.transform.position);
        Vector2 rMin = r.offsetMin;
        Vector2 rMax = r.offsetMax;
        Vector2 sc = r.localScale;
        Vector3 rp = r.position;
        //r.localScale = Vector2.one;
        r.pivot = new Vector2(0.5f, 0.5f);
        Vector2 pos;
        RectTransformUtility.ScreenPointToLocalPointInRectangle(r, Input.mousePosition, myCanvas.worldCamera, out pos);
        float px = pos.x / r.rect.width + 0.5f;
        float py = pos.y / r.rect.height + 0.5f;          
        r.pivot = new Vector2(px, py);
     
        //r.localScale = sc;
        //r.offsetMin = rMin;
        //r.offsetMax = rMax;

        print("pos posle" + r.transform.position);
        print("rMin = " + rMin);        
        print("rMax = " + rMax);
        print("px = " + px);        
        print("py = " + py);
        print("mp = " + Input.mousePosition);
        print("pos = " + pos);
        print("anchoredPosition = " + r.anchoredPosition);
    }
 

В итоге у меня меняет визуально позицию сам объект относительно pivota а pivot стоит на месте. Нужно чтобы визуально переместился пивот под мышку.
Общая задача увеличить картинку относительно где стоит курсор, меняю скале и картинка увеличивается относительно пивота.
Если не понятно описал задачу скажите, сниму видос.