Unity, how to change only "top" of GameObject rect transform

I want to change rect transform top value of GameObject(ui pannel) dependely of Instantiated objects in it. I found that GameObject.transform.localPosition is not useful for that. localScale stratch the elements inside of scaled GameObject.

How it can be done correctly??

public void OnMouseEnter()
{        
    {            
        ResoursesTipsNewPannel = Instantiate(ResoursesTipsPanel);
        ResoursesTipsNewPannel.transform.SetParent(ResoursesPanelTransform, false);

        for (i = 0; i < n; i++)
        {
            //RIGHT HERE I GUESS MUST BE SOME CODE THAT CHANGE TOP VALUE OF MY PANNEL
            ResoursesNewTipText = Instantiate(ResoursesTipText);
            ResoursesNewTipText.transform.SetParent(ResoursesTipsNewPannel.transform, false);
            ResoursesNewTipText.text = "Exemple text, " + i;
        }
        i = 0;            
    }
}

Maybe some existing component that is attached to "ResoursesTipsNewPannel"(from example code) that change scale of panel automatically?

enter image description here

Upvotes: 1

Views: 1881

Answers (1)

To solve I added this into code from my example:

RectTransform ChangeRectTransform;
ChangeRectTransform = ResoursesTipsNewPannel.GetComponent<RectTransform>();
ChangeRectTransform.offsetMax = new Vector2(ChangeRectTransform.offsetMax.x, ChangeRectTransform.offsetMax.y+20);

Upvotes: 2

Related Questions